Cron - программа-демон, предназначенная для выполнения заданий в определенное время, или через определенные промежутки времени.Название cron образовано от греческого слова χρόνος (хрόнос) — время (по-английски — cronos). Разработчик cron, Кен Томпсон (англ. Ken Thompson). Для редактирования заданий используется утилита crontab.
$ crontab <filename>
- добавление файла расписания
$ crontab -l
- вывести содержимое текущего файла расписания
$ crontab -e
- редактирование текущего файла расписания
$ crontab -r
- удаление текущего файла расписания
$ crontab -u username
- позволяет выполнять вышеописанные действия для конкретного пользователя
- Относительные пути вместо абсолютных. Иногда, при настройке крона, указывают относительный путь к скрипту, который нужно запускать. Или же сам скрипт содержит относительные пути к файлам/папкам/другим скриптам. Из-за этого крон работает не корректно и проблему можно не сразу обнаружить, поэтому всегда стоит указывать абсолютные пути к файлам/папкам/скриптам.
0 23 * * * ./backup.sh
Не правильно
0 23 * * * /home/user/backup.sh
Правильно
0 23 * * * ~/backup.sh
Правильно, в рамках пользователя
- Бывают моменты, когда нужно заново поднимать проект. Можно забыть настроить кроны и какой-то функционал не будет работать. Поэтому всегда нужно использовать хелз-чек сервисы, такие как healthchecks.io чтобы сразу узнать о том, что какой-то крон перестал работать.
- Каждую минуту вывод времени в файл
* * * * * echo "Hello there, today is $(date +\%T)" >> ~/Projects/itea/cron/cron.log
- Ежедневная генерация бекапа
0 23 * * * /home/user/backup.sh
- Использование сервиса healthchecks.io
0 23 * * * /home/user/backup.sh && curl -fsS --retry 3 https://hc-ping.com/c3fbb704-01a4-435e-bf47-dd6232880bcc > /dev/null