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

27 ott 2022 2 min di lettura
Как запустить несколько команд в одном задании Cron
Indice dei contenuti

Введение

Crontab — это утилита для запуска запланированных задач через равные промежутки времени в системах Unix-Linux. Это позволяет нам запланировать одновременное выполнение нескольких заданий cron. Мы можем запрограммировать любую команду оболочки или сценарий для выполнения на терминале. Каждое задание CronJob, запланированное в crontab, отделяется новой строкой. Мы также можем определить несколько команд или сценариев в одном задании cron, которые будут запускаться один за другим.

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

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

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

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 в файл.

Запуск нескольких команд в одном процессе Cron

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

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

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

0 2 * * *   chmod -R 755 /var/www/myapp; chmod -R 777 /var/www/myapp/logs

Используйте логическое И (&&)

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

0 2 * * *   cd /backup && bash backup.sh

Используйте логическое ИЛИ (||)

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

0 2 * * *  [ -f /backup/mydb-`date +%F`.sql ] || echo "Today's backup file not found" 

Вывод

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

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.