Рубрики
Без рубрики

Как планировать и управлять задачами, используя Crontab

Перед тем, как пройти подробную информацию о Crontab, давайте предположим, что вы запускаете интернет-магазин, и хотите … Помечено Ubuntu, Python, Linux, JavaScript.

Перед тем, как перейти к деталям о CRONTAB, давайте предположим, что вы запускаете интернет-магазин, и вы хотите отправить электронное письмо о последних предложениях на каждые пятницу в 9:00 MST. Так как вы можете достичь этого. Конечно, вы можете написать свой собственный планировщик задач N Количество строк кодов, если у вас есть много времени или вы можете просто использовать Crontab, доступную во все операционной системы Unix и Linux, чтобы запланировать задачу.

Что такое Crontab.

Crontab короткая форма Cron Table. CRON – это утилита, доступная на всех операционной системе Linux и Unix, которая запускает задачу или процесс при заданной дате и времени. Таким образом, Crontab на самом деле является таблицей, которая содержит скрипт или команды вместе с датой и временем.

Как просмотреть таблицу Crontab или Cron

На Ubuntu вы можете использовать Crontab -L для просмотра текущей таблицы

shaikh@shaikhu-com:~$ crontab -l
# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command

Используйте Crontab -e для редактирования и управления таблицей CRON

Как установить дату и время работы запустить

Ниже приведен формат Crontab, который поддерживается всеми системами Linux.

# * * * * * command to be executed
# | | | | |
# | | | | |
# | | | | |
# | | | | |_______________Day of the week (0 - 6)(Sunday to Saturday)
# | | | |_______________Month (1 - 12)
# | | |_______________Day of the Month(1 - 31)
# | |_______________Hour(0 - 23)
# |_______________Minute(0 - 59)

Давайте попадаем в некоторые примеры для лучшего понимания

Пример 1: Давайте попадем в первый пример, который мы обсуждали в начале I.e. Запустите работу, чтобы отправить электронное письмо всем подписчику в 9 утра каждые пятницу

0  9  *  *  5  /usr/bin/python3 sendEmail.py

Пример 2: В нижеприведении мы выполняем работу каждые 15 минут (примечание/оператор)

*/15  *  *  *  *  doSomething.sh

Пример 3: Здесь мы работаем на работу каждый 1-й и 5-й час (обратите внимание на запятую)

*  1,5  *  *  *  doSomething.sh

Пример 4: Ниже работы проходит 1 января каждый год в 7 утра

0  7  *  1  *  happyNewYear.sh

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

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

0  *  *  *  *  sleep $(($RANDOM%60))m;sh test.sh

Давайте понять, что мы сделали выше. Согласно правилам CRONTAB выше набор команд будет работать в каждом часе. В начале каждого часа Cron столкнутся с двумя командами, и первая команда – это спать в случайных минутах. Таким образом, этот CRON задержит для этого случайных минут, а затем он выполнит вторую команду, которая является нашей задачей, когда она просыпается от сна 😃

Если вы хотите сделать еще несколько вещей, чем просто спать, мы можем написать сценарий оболочки для того же вместо сна.

Как показано ниже, вы можете запустить скрипт Python из скрипта оболочки после задержки N NO минут.

Crontab:

0  *  *  *  *  sh test.sh

test.sh

#!/usr/bin/sh
#test.sh

TIME=$((RANDOM%60))
sleep "${TIME}m"
#Do some stuff
#Do some more stuff
/usr/bin/python3 /mybots/newsbot.py

Таким образом, вы используете код Python из скрипта оболочки один раз после задержания случайных минут и после выполнения еще нескольких кодовых материалов:)

Заключение

Cronjob – очень полезная таблица полезных услуг, которая используется для заплаты задачи. Правила очень простые и легко запоминаются. Вам просто нужно следовать правильному формату для запуска задачи или сценария. Надеюсь, что это поможет вам запланировать свой скрипт/вакансии:).

Оригинал: “https://dev.to/shaikh/how-to-schedule-and-manage-tasks-using-crontab-20dj”