Ошибка сценария Rsync «Это каталог»

Это можно воспроизвести с помощью:

$ nohup bash -c 'read var' | cat
nohup: ignoring input and redirecting stderr to stdout
bash: line 0: read: read error: 0: Bad file descriptor

Вот что написано на странице руководства nohup(выделение мое):

If standard input is a terminal, redirect it from an unreadable file.

nohupделает это, открывая /dev/nullв режиме записи только , затем перенаправляя стандартный ввод из него, дублируя его в fd 0. Отсюда ошибкаEBADF("Bad file descriptor")--, потому что ваш скрипт пытается чтение из файла, открытого в режиме только для записи:

$ read var 0>/dev/null
bash: read: read error: 0: Bad file descriptor

Нет особого смысла пытаться получить пользовательский ввод через readиз скрипта, запускаемого через nohup, поэтому я думаю, вам придется переосмыслить свой подход.

0
01.12.2020, 02:49
1 ответ

Ошибка, которую вы публикуете :line 12: /media/user/BCKPDRV/jomdir: Is a directory, не является ошибкой rsync, это ошибка оболочки. Оболочка думала, что в строке 12 должен быть выполнен указанный выше путь, и ошибка говорит о том, что она не может этого сделать. Он не подает его в качестве аргумента rsync, как вы ожидали.

Для получения дополнительной помощи вам, вероятно, потребуется вырезать и вставить реальный скрипт bash в ваш вопрос, а не только те части, которые вы считаете уместными.

2
18.03.2021, 22:46

Теги

Похожие вопросы