cron

cron


#cron

Как использовать crontab для автоматического выполнения задач в Linux

Crontab - это инструмент в Linux, который позволяет планировать задачи на выполнение в автоматическом режиме, в указанное время и частоту. Чтобы использовать crontab, вам нужно зн’Рабочий стол’ать синтаксис, который состоит из шести полей, каждое описывающее, когда и как часто нужно запустить задачу.

Чтобы открыть crontab для редактирования, введите в терминале следующую команду:

crontab -e

Если редактор по умолчанию, к примеру, vi или vim, вызывает ошибки, вы можете изменить редактор на nano, установив переменную окружения в своем .bashrc или .bash_profile:

export VISUAL=nano export EDITOR=”$VISUAL”

Или же просто выполните эти команды в терминале, что позволит вам разово избавиться от ошибки.

После этого вы можете отредактировать crontab, добавив строку с заданием для выполнения каждые 15 минут:

*/15 * * * * python3 /home/user/script.py

Сохраните изменения и выйдите из редактора. Ваш скрипт будет автоматически запускаться каждые 15 минут.

Посмотреть все задачи crontab, которые есть в системе можно командой:

crontab -l

Чтобы удалить все задачи, введите команду:

crontab -r

Здесь представлены команды для выставления времени срабатывания crontab:

Порядок: *минута *час *день *месяц *день_недели

* * * * * command: каждую минуту (звездочка означает ‘все значения’).

0 * * * * command: каждый час, в начале часа.

0 0 * * * command: каждый день, в полночь.

0 0 * * 0 command: каждую неделю, в воскресенье в полночь.

0 0 1 * * command: первый день каждого месяца, в полночь.

0 0 1 1 * command: первый день каждого года, в полночь.

Вы можете изменять любой из пяти разделов * * * * * для получения желаемого времени.

Например, вместо * * * * *, 0 * * * * означает, что команда будет запускаться каждый час в начале часа.

Заключение

Crontab - очень мощный инструмент для автоматизации многих процессов в Linux, таких как резервное копирование данных, очистка от временных файлов, обновление программного обеспечения, создание отчетов, и многое другое. Но будьте очень внимательны при редактировании и проверьте правильность настроек перед сохранением изменений в crontab.

Как запустить задание cron

Если демон cron не запущен в системе Linux, задание cron не запустится. Сначала вам нужно запустить службу cron.

Как и большинство других вещей в Linux, способ работы со службами также отличается. Вот почему я перечисляю разные команды для систем Debian и Red Hat.

Для RedHat/CentOS:

service crond start

В более старых версиях Redhat и Centos используйте:

/etc/init.d/crond start

Для систем Ubuntu и Debian:

sudo service cron start

В более ранних версиях вы можете использовать следующее:

sudo /etc/init.d/cron start

Вы ничего не увидите на выходе, если команды выполнены успешно. Как узнать, запущено ли задание cron?

Проверьте состояние службы cron следующим образом:

sudo service cron status

Он должен показывать активный статус:

Это позаботится о запуске служб cron. Посмотрим, сможем ли мы это остановить.

Как остановить работу cron

Если вы не хотите продолжать выполнение заданий cron, остановите их, пока не закончите устранение неполадок. Вы можете начать сначала после этого.

В RedHat и CentOS используйте следующую команду, чтобы остановить службу cron:

service crond stop

Для более старых версий используйте:

/etc/init.d/crond stop

Для Ubuntu и Debian вы можете использовать эту команду:

sudo service cron stop

или используйте следующую команду для более старых версий:

sudo /etc/init.d/cron stop

Вы можете проверить, остановлена ​​ли служба cron или нет, с помощью команды:

sudo service cron status

Он должен показывать неактивный статус:

Как перезапустить задание cron

Пробовали выключить и снова включить? Шутки в сторону, перезагрузка часто исправляет ситуацию сама по себе. Во время устранения неполадок вы также можете попробовать перезапустить службу cron.

на RedHat и Centos

service crond restart

Или попробуйте старые команды:

/etc/init.d/crond restart

Для систем Ubuntu и Debian используйте

sudo service cron restart

Вы также можете попробовать приведенную выше команду.

sudo /etc/init.d/cron restart