Как запустить несколько команд в одном задании Cron

Crontab - это утилита для запуска запланированных задач через регулярные промежутки времени в системах Unix-Linux. Она позволяет планировать одновременный запуск нескольких заданий cron.

Мы можем запланировать выполнение любой команды оболочки или сценария в терминале. Каждое запланированное задание в crontab отделяется новой строкой.

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

Как разделить две команды в Linux

Вы можете разделить две или более команды с помощью точки с запятой (;), логических операторов AND (&&) или логического OR (||). Какой из этих операторов использовать, полностью зависит от требований. Вот основное понимание использования этих операторов.

Точка с запятой (;): используется для разделения нескольких команд. При этом выполняются все команды без проверки состояния выхода предыдущих команд.

command_1; command_2; command_n

Логическое И (&&): используется для разделения команд, когда мы хотим выполнить следующую команду только в том случае, если предыдущая команда была успешно выполнена со статусом выхода 0.

command_1 &&  command_2 &&  command_n

Логическое ИЛИ (||): используется для разделения команд, когда мы хотим выполнить следующую команду только в том случае, если предыдущая команда завершилась неудачей со статусом выхода не 0.

command_1 ||  command_2 ||  command_n

Как запланировать задание Cron

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

crontab -e 

Затем вы добавляете запись задания cron в файл, как показано ниже:

Команды Crontab, разделенные логическим AND

Выполнение нескольких команд в одном задании Cron

Использование точки с запятой (;)

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

0 2 * * *   chmod -R 755 /var/www/myapp; chmod -R 777 /var/www/myapp/logs
Команды Crontab, разделенные точкой с запятой (;)

Использование логического AND (&&)

Используйте этот оператор, если вы хотите запустить следующую команду только при успешном выполнении предыдущей (статус выхода 0). Например, вы хотите запустить backup.sh после успешного перехода в каталог /backup.

0 2 * * *   cd /backup && bash backup.sh
Команды Crontab, разделенные логическим AND

Использование логического OR (||)

Используйте оператор логического ИЛИ (||), когда вы хотите выполнить следующую команду только в том случае, если предыдущая завершилась неудачно (статус выхода не 0). Например, вы хотите вывести сообщение или отправить электронное письмо, если файл резервной копии не найден.

0 2 * * *  [ -f /backup/mydb-`date +%F`.sql ] || echo "Today's backup file not found" 
Команды Crontab, разделенные логическим AND

Заключение

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

Написать комментарий