ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

Почему мой Crontab не работает и как его устранить?

Выполнение задач вручную утомительно и в некоторых случаях неприменимо. Однако утилита cron позволяет пользователю планировать различные задания в разное время. Вы можете запланировать свой сервер для еженедельного создания резервной копии или любой другой задачи, которую вы считаете необходимой. Существует лучший способ запуска нескольких команд в одном задании cron. Вы можете запланировать все задачи в одном задании cron. Хотите научиться это делать? Читай дальше что бы узнать.

 

Работа с файлом Crontab

Когда вы хотите запланировать задание, вы начинаете с определения даты и времени, а затем команды или сценария для запуска. Таким образом, когда запланированное время наступит, задание будет выполнено автоматически.

У каждого пользователя есть файл crontab, и вы можете создать задание cron с помощью команды crontab -e. В этом руководстве мы создадим три задания cron по отдельности, а затем посмотрим, как мы можем объединить их в одно задание cron.

 

Создание заданий Cron

Мы создадим три задания cron. Первый выполняет сценарий резервного копирования. Второй создаст новый файл, а последний переименует созданный файл, если он существует. Мы запланируем запуск задач в разное время, но в один и тот же день, используя приведенные ниже команды.

$ crontab -e

 

Как показано, мы добавили задания cron в конец файла crontab.

0 6 * * * /home/andreyex/backup.sh

10 6 * * * touch /home/andreyex/Desktop/names.sh

12 6 * * * mv /home/andreyex/Desktop/names.sh /home/andreyex/Desktop/renamed.sh

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

 

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

Вы можете использовать два параметра для установки нескольких команд в одном задании cron.

1. Используйте &&: двойной амперсанд указывает, что вторая команда должна выполняться только в том случае, если предыдущая команда выполнена успешно. Например, приведенная ниже команда подразумевает, что в случае успешного выполнения сценария резервного копирования в каталоге /Desktop будет создан новый файл. И после создания он переименует его.

0 6 * * * /home/andreyex/backup.sh && touch /home/andreyex/Desktop/names.sh && [mv /home/andreyex/Desktop/names.sh

 

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

* * /home/andreyex/backup.sh; [touch /home/andreyex/Desktop/names.sh; mv /home/andreyex/Desktop/names.sh /home

 

В зависимости от того, какую задачу или сценарий вы хотите выполнить, любая из вышеперечисленных опций пригодится при использовании нескольких команд с одним заданием cron. Обратите внимание, что задания cron будут выполняться одновременно, одно за другим, в зависимости от выбранного вами варианта. Объединение нескольких команд полезно, когда результат одной команды определяет, как должна выполняться следующая команда.

 

Вывод

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

Exit mobile version