Скрипт при выполнении через cron не работает
При выполнении скрипта через cron вдруг выяснилось что он не отрабатывает должным образом, хотя при запуске вручную он работает как и положено. В логах cron запуск скрипта отмечается, запуск происходит от одного пользователя. В чем же может быть проблема?
Проблема оказалось в том что при запуске скрипта через cron стандартный поток вывода команды не давал закончить скрипту его работу.
Решение в следующем: добавляем в верхних строчках /etc/crontab, вот эту строку:
MAILTO=»»
Либо, перенаправляем в никуда стандартный вывод команды. Вот так
2>/dev/null
2 — обозначает стандартный поток вывода
/dev/null — это и есть то самое никуда
Поясним на примере. У меня проблема была при работе ffmpeg который при запуске вручную отрабатывал как надо, но при выполнении через cron конвертировал файл не до конца.
Команда в cron до
* * * * * root /AVItoFLV-JPG.pl
Команда в cron после
* * * * * root /AVItoFLV-JPG.pl 2>/dev/null