rm -rf: невозможно удалить `/ opt / jetty ': каталог не пуст

У меня есть сценарий, используя следующую команду для удаления папки:

ssh -q root@hostname sh -c 'rm -rf /opt/jetty/' 

В большинстве случаев он отлично работает, но иногда я получаю это сообщение:

rm: не удается удалить `/ opt / jetty ': каталог не пуст

Единственным подозрительным моментом является удаление папки, содержащей файл блокировки, который используется командной оболочкой оболочки для получения блокировки файла. Но я попытался удалить папку вручную, когда файл даже был заблокирован flock , и он преуспел.

Обновить:


Окружающая среда Linux

 # uname -a Linux XXX 2.6.32-504.8.1.el6.x86_64 #1 SMP Fri Dec 19 12:09:25 EST 2014 x86_64 x86_64 x86_64 GNU/Linux 

rm не псевдоним ни с чем, out of rm:

 # rm rm: missing operand Try `rm --help' for more information. 

У меня есть служебный скрипт для запуска Jetty, который создает файловую блокировку внутри папки. Некоторые фрагменты, как показано ниже:

 JETTY_LOCK=/opt/jetty/jetty_lock start(){ #open file descriptor and acquire lock exec 200>$JETTY_LOCK flock -x -n 200 || { exec 200>&-;echo 'jetty is being started by another process.'; sleep 5; exit 0; } ... cd /opt/jetty/ ... echo $!>&200 fi flock -u 200 #release lock exec 200>&- #close file descriptor } 

Обновить:


После воспроизведения ошибки я обнаружил, что только файл jetty_lock по-прежнему оставался int / opt / jetty, означает ли это, что сток блокирует блокировку файла при удалении? Я не могу предоставить более подробную информацию, потому что я не знаю, когда это произойдет в следующий раз …

One Solution collect form web for “rm -rf: невозможно удалить `/ opt / jetty ': каталог не пуст”

Для отладки сеанса ssh используйте параметр «-v» вместо «-q» и анализируйте вывод.

Попробуйте использовать абсолютные пути в удаленной команде. Так выглядит:

 # ssh -v root @ имя хоста / bin / sh -c '/ bin / rm -rf / opt / jetty /'
  • Тест веб-камеры Debian / Raspberry usb перед выпуском скрипта fswebcam, множественный сбой приведет к сбою ОС
  • Функциональность Copytruncate без использования logrotate
  • выполнение команд в оболочке и отключение отображения команд по умолчанию в консоли
  • ls дает мне разные заказы сортировки во время работы cron
  • Сформированный вывод скрипта оболочки
  • Как скопировать файл в сценарий bash и переименовать его во время копирования и поместить его в тот же каталог
  • Как назначить переменную внутри трубы
  • Машиночитаемое количество обновлений? Альтернатива / usr / lib / update-notifier / apt-check?
  • Получите очень следующее слово подстроки в строке
  • Примените SHA256 и Base64 к строке в скрипте
  • Как проверить, есть ли в нем символы?
  • Linux и Unix - лучшая ОС в мире.