Skip to content

Instantly share code, notes, and snippets.

@KostenkoA
Last active August 14, 2020 04:45
Show Gist options
  • Save KostenkoA/2ef413f0090430ea58e93677d5d0130f to your computer and use it in GitHub Desktop.
Save KostenkoA/2ef413f0090430ea58e93677d5d0130f to your computer and use it in GitHub Desktop.

Cron

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 чтобы сразу узнать о том, что какой-то крон перестал работать.

Примеры

  1. Каждую минуту вывод времени в файл
* * * * * echo "Hello there, today is $(date +\%T)" >> ~/Projects/itea/cron/cron.log
  1. Ежедневная генерация бекапа
0 23 * * * /home/user/backup.sh
  1. Использование сервиса healthchecks.io
0 23 * * * /home/user/backup.sh && curl -fsS --retry 3 https://hc-ping.com/c3fbb704-01a4-435e-bf47-dd6232880bcc > /dev/null

Полезные ссылки

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment