Автоматизация с помощью Cron
В последнее время было довольно много проектов, в которых я обнаружил, что делаю утомительные вещи, которые можно легко автоматизировать. Введите Cron, планировщик заданий на основе времени.
Один или два раза в неделю я обновляю / перестраиваю свой сайт Jekyll, потому что он отображает мой канал Medium RSS как страницу блога. Поскольку сайт статичен, мне нужно перестраивать его каждый раз, когда я публикую что-то новое. Это не проблема, так как это всего лишь несколько команд, но иногда я забываю, и могут пройти недели, не обновляя свой сайт. Написать Cron-задание настолько легко, что вы обнаружите, что автоматизируете практически все повседневные задачи, которые выполняете.
Написание Cron Job
#bash $ env EDITOR=nano crontab -e #opens nano in your terminal, with your crontab open.
Теперь вы должны увидеть что-то подобное после выполнения указанной выше команды.
Ладно, не совсем так, так как здесь содержится моя работа cron, но это должен быть красивый пустой текстовый файл. Для моей цели я решил создать исполняемый файл с командами, а затем заставить cron запустить его, однако вы можете запускать команды здесь, просто лучше написать сценарий для него.
Временные интервалы Cron
Cron работает, выполняя ваши команды в определенное время, будь то еженедельно в понедельник в 14:00 или 15 числа каждого месяца. * * * * * в начале каждого определяет различную шкалу времени.
- 1-й символ, * - Минута дня
- 2-й символ, * * - Час дня
- 3-й символ, * * * - День месяца
- 4-й символ, * * * * - месяц года
- 5-й символ, * * * * * - День недели (0–7, воскресенье обозначается цифрами 0 и 7)
В моем примере вы заметите, что я решил выполнять каждую неделю по воскресеньям.
Вот еще один пример, если вы хотите запускать задание в 6:30 каждый вторник.
#nano 30 18 * * 2 yourcommand #execute every Tuesday at 18:30 45 07 10 * * yourcommand # execute every 10th day of the month at 07:45 20 15 * * 3 yourcommand # execute at 15:20 every Wednesday
Давайте сделаем это немного проще и добавим несколько быстрых команд в наши .bashrc или .zshrc (в зависимости от того, что вы используете).
Используя команду alias, мы можем сократить длинную команду до чего-то более простого для запоминания и ввода.
#.bashrc or .zshrc alias newcron="env EDITOR=nano crontab -e" #open a new crontab alias cronjobs="crontab -l" # list our cronjobs
Теперь вы готовы автоматизировать все, что захотите!
Как всегда, спасибо за чтение, нажмите 👏, если вам нравится то, что вы читаете, и обязательно подпишитесь, чтобы быть в курсе будущих публикаций.