Введение
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. Также мы обсудили различные варианты разделения команд. В статье представлены основные сведения о каждом разделителе, используемом для разделения команд.