vazhnov: (Default)
Alexey Vazhnov ([personal profile] vazhnov) wrote2011-09-15 10:53 pm

Правила хорошего тона: Cron

  • Редактировать с помощью crontab -e (т.к. при выходе проверяется корректность введённых данных). Поменять редактор можно, например, так: export EDITOR=mcedit;
  • Указывать полный путь к файлам (т.к. переменная PATH обычно отличается от той, с которой вы работаете);
  • Скрипты должны выдавать что-либо в stderr только в случае ошибок (не должно быть отвлекающих warning'ов, т.к. любой вывод отправляется письмом на MAILTO — обычно пользователю root, желательно чтобы эти письма приходили в случае ошибок);
  • Добавлять пустую строку в конце файла (https://help.ubuntu.com/community/CronHowto When adding a new entry to a blank crontab, forgetting to add a newline at the end is a common source for the job not running).

А ещё есть простой и классный bash-скрипт cronic.

[identity profile] is-pain.livejournal.com 2015-12-06 06:56 am (UTC)(link)
про enter в конце последней строки - вот прикол) Кто бы додумался...

[identity profile] is-pain.livejournal.com 2015-12-06 07:22 am (UTC)(link)
кстати, столкнулся с проблемой, что cron не видел скрипт в пользовательской папке "Загрузки".
Решение - элементарное: в crontab -e прописать cd "абсолютный путь к папке"; абсолютный путь к скрипту
В моем случае это выглядело так:

# работает каждую минуту
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * cd "/home/alex/Загрузки"; /home/alex/Загрузки/.sort.sh


PATH= тоже видимо важная штуковина, но автор поста вам про нее расскажет лучше.