crontab

Запускайте задание Cron каждую минуту

Запускайте задание Cron каждую минуту
Если вы хотите запустить программу или скрипт в фоновом режиме в Linux, то задание cron очень важно. С помощью заданий cron вы можете выполнять программу или скрипт в фоновом режиме через заданный интервал времени.

Давайте посмотрим на некоторые из реальных примеров работы cron.

В Linux есть много других вариантов использования заданий cron.

В этой статье я покажу вам, как запускать задания cron каждую минуту в Linux. Я буду использовать Debian 9 Stretch для демонстрации. Но вы можете использовать любой современный дистрибутив Linux по вашему выбору. Давайте начнем.

Основы Crontab:

В Linux вам не обязательно быть корень для запуска заданий cron. Вы можете запускать задания cron от имени любого пользователя. Каждый пользователь Linux может использовать crontab файл для запуска собственного набора заданий cron.

По умолчанию у пользователя нет crontab файл в Linux. Вы можете создать crontab файл с помощью следующей команды:

$ crontab -e

Если вы запускаете эту команду впервые, вам будет предложено выбрать текстовый редактор из списка. Я выберу нано, по умолчанию. Вы можете выбрать тот, который вам нравится. Когда вы закончите, нажмите .

В crontab файл должен быть создан (если он еще не доступен) и открыт в вашем любимом текстовом редакторе.  Теперь вы можете добавить свои собственные задания cron в конец этого файла, и когда вы будете довольны, просто сохраните его и выйдите из текстового редактора.

Синтаксис выполнения команды каждую минуту:

Синтаксис crontab файл выглядит следующим образом:

минута час деньOfMonth month dayOfWeek commandToRun

Здесь,

Чтобы запустить commandToRun команду каждую минуту, вы должны записать ее в crontab файл следующим образом:

* * * * * commandToRun

Выполнение Crob Job каждую минуту:

Теперь, когда мы знаем теории, давайте добавим простой скрипт таймер.ш к crontab файл и посмотреть, как с ним работать.

в таймер.ш скрипт, у меня есть только следующие строки кода. Все, что он делает, это создает новый файл / home / shovon / bin / таймер.бревно (если еще не существует) и добавляет к нему вывод команды date.

Теперь добавим скрипт в наш crontab и пусть он запускается каждую минуту со следующей строкой:

* * * * * / home / shovon / bin / timer.ш

Как только вы сохраните crontab файл и выйдите из текстового редактора, новый crontab файл должен быть установлен.

Через минуту появится новый файл таймер.бревно создается в желаемом каталоге, как вы можете видеть в отмеченном разделе на скриншоте ниже.

От таймер.бревно файл журнала, очевидно, что сценарий таймер.ш работает каждую минуту.

Выявление ошибок из заданий Cron:

Чтобы отловить ошибки из задания cron, вы можете отправить ошибки в ошибка.бревно файл и нормальные выходы в доступ.бревно файл например. Конечно, вы можете называть файлы как хотите.

Чтобы продемонстрировать это, я изменил свой сценарий таймер.ш совсем немного. Теперь ошибки отправляются на ошибка.бревно файл в / home / shovon / bin каталог, а выходы отправляются в доступ.бревно в / home / shovon / bin каталог.

Сначала / tmp / i_must_be_here файл не существует, поэтому я получаю сообщение об ошибке в ошибка.бревно файл, как вы можете видеть.

В доступ.бревно файл на данный момент пуст.

Теперь я собираюсь создать файл / tmp / i_must_be_here

Как видите, результат находится в доступ.бревно подать сейчас.

При желании вы можете перенаправить вывод и ошибки в один и тот же файл следующим образом:

Как видите, выходы STDIN и STDERR отправляются в вне.бревно файл.

Убедитесь, что последнее задание завершено Выполнение перед повторным запуском задания:

Чтобы это работало, вы можете создать временный файл сразу после запуска задания и удалить его незадолго до его завершения. Затем вы можете проверить, существует ли временный файл, прежде чем запускать задание. Если это так, вы можете выйти из задания и запустить его только тогда, когда временный файл недоступен.

Этот простой скрипт делает именно это.

Как видите, таймер.пид файл создан.

Читая доступ.бревно файл доказывает, что задание cron не запускается до завершения предыдущего задания cron. Как видите, он запускался в 01:32:01, а в следующий раз должен был запускаться в 01:33:01, но этого не произошло. Вместо этого он был запущен в 01:35:01, примерно через 3 минуты.

Организация вывода заданий Cron для упрощения отладки:

Вы можете красиво отформатировать выходные данные, чтобы упростить отладку вашей cron-задачи.

Пример того, как это можно сделать, приведен в следующем скрипте.

Как видите, выходные данные, сообщения об ошибках и успешном выполнении хорошо печатаются в файле журнала.

Вы можете делать удивительные вещи с заданиями cron и сценариями оболочки. Я продемонстрировал здесь некоторые идеи. Но небо - твой предел. Не стесняйтесь экспериментировать с любыми идеями, которые у вас есть. Спасибо, что прочитали эту статью.

Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...
Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...
Как загрузить и играть в Sid Meier's Civilization VI в Linux
Введение в игру Civilization 6 - это современный подход к классической концепции, представленной в серии игр Age of Empires. Идея была довольно просто...