Intereting Posts
Какой умный способ подсчитать количество дней с X? Скопируйте метафайлы EXIF ​​из ключевых слов в описание на огромное количество фотографий в подпапках Как скопировать между двумя удаленными узлами, используя tar, переданные в SSH с удаленного сервера, когда за брандмауэром? Linux: создание сетевого моста снижает скорость сетевого адаптера до 100 Мбайт / с вместо 1000 МБ / с Веб-браузер подключил звук пульсового звука, как выпустить? Содержимое конвейера с несколькими пробелами Как удалить все файлы в каталоге Канонический способ имитации файлового менеджера «открыть элемент» из командной строки Как установить Arch Linux на Mac? На внешнем жестком диске? Понимание туннелей SSH Имя пользователя отсутствует в файле sudoers. Об этом инциденте будет сообщено – ГДЕ / КАК? Ошибка сценария с "chmod: … операция не разрешена" Ошибка при установке приложения: /lib/ld-linux.so.2: плохой интерпретатор ELF: нет такого файла или каталога Как настроить сервер SSTP Как правильно сопоставлять IP-набор типа «хеш: ip, порт»?

Почему перенаправление в crontab приводит к нулевому байтовому файлу?

Система: Xubuntu 13.10

Когда у меня есть эта запись crontab

*/5 * * * * cat /home/dbk/.bash_aliases &> /home/dbk/Desktop/junk 

junk имеет размер байта 0 .

Бег

 $ cat /home/dbk/.bash_aliases &> /home/dbk/Desktop/junk 

дает файл с соответствующим размером и содержимым.

Проблема, потому что задача запуска cron с sh . &> является ярлыком для перенаправления как stderr и stdout в один и тот же файл в bash , а не в sh .

В sh , ваша команда:

 cat /home/dbk/.bash_aliases &> /home/dbk/Desktop/junk 

означают запуск двух команд отдельно:

  • Запустить cat /home/dbk/.bash_aliases в фоновом режиме

    cat /home/dbk/.bash_aliases &

  • Усечь мусорный файл.

    > /home/dbk/Desktop/junk

Поэтому вы должны использовать bash для запуска вашей команды в crontab :

 */5 * * * * bash -c "cat /home/dbk/.bash_aliases &> /home/dbk/Desktop/junk" 

или используя более портативный способ:

 */5 * * * * cat /home/dbk/.bash_aliases > /home/dbk/Desktop/junk 2>&1