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