Ubuntu 9.10
crontab-l
0 1 * * */root/cron/rsync-93.193.99.111 и> /root/cron/rsync-93.193.99.111.log
0 3 * * * хвост-100 /root/cron/rsync-93.193.99.111.log | msmtp me@myemail.com
ls-l /root/cron/rsync-93.193.99.111.log
- rw-r - r - базируются корневой /root/cron/rsync-93.193.99.111.log
Файл rsync-93.193.99.111.log отображает нулевой размер в Наутилусе.
Я получаю электронное письмо, но это пусто.
Рабочий хвост-100, также выставочный вывод emtpty, таким образом, электронная почта корректна.
Почему удар является rsync сценарием, ничего не пишущий в файл?
Я полагаю, что это потому что &>
не поддерживается в sh
который является оболочкой это cron
использование. Используйте явную форму:
0 1 * * * /root/cron/rsync-93.193.99.111 > /root/cron/rsync-93.193.99.111.log 2>&1
Кроме того, можно сделать sudo crontab -e
вместо выполнения sudo su
затем crontab -e
.
Я соглашаюсь с оценкой Dennis Вашей проблемы. Но у меня есть несколько других точек для упоминания.
Самое главное не делайте этого:
0 1 * * * some command
0 3 * * * some other command that should run after the first one
Что, если первая команда берет более или менее, чем два часа? Чтобы удостовериться, что вторая команда выполнения, когда законченное первое, помещает их на одну строку:
0 1 * * * /root/cron/rsync-93.193.99.111 >/root/cron/rsync-93.193.99.111.log 2>&1; tail -100 /root/cron/rsync-93.193.99.111.log | msmtp me@myemail.com
Кроме того, Вы могли бы хотеть использовать в своих интересах автоматическую отправку по почте крона ошибок. (Это предполагает, что Ваша система настраивается правильно для почты, которая не может иметь место, если необходимо работать msmtp
вместо mail
.)
MAIL=me@myemail.com
0 1 * * * /root/cron/rsync-93.193.99.111 2>&1 | tee /root/cron/rsync-93.193.99.111.log | tail -n 100