Включение/отключение задач в Crontab с помощью Bash/Shell

Есть ли способ включить и отключить задачи Crontab с помощью Bash/Shell?

Поэтому, когда пользователь запустит сервер 1, он включит линию 1 Crontab Server 1 и так далее. И когда пользователь останавливает сервер 1, линия 1 Crontab Server 1 отключается (#). Возможно ли это и как?

Заранее спасибо

*/1 * * * * Server 1 check
*/1 * * * * Server 2 check
*/1 * * * * Server 3 check

Ответ 1

SERVERNUM=$1

Чтобы включить:

crontab -l | sed "/^#.*Server $SERVERNUM check/s/^#//" | crontab -

Чтобы отключить:

crontab -l | sed "/^[^#].*Server $SERVERNUM check/s/^/#/" | crontab -

Стенограмма:

[email protected]$ crontab -l
*/1 * * * * Server 1 check
*/1 * * * * Server 2 check
*/1 * * * * Server 3 check
[email protected]$ crontab -l | sed '/^[^#].*Server 1 check/s/^/#/' | crontab -
[email protected]$ crontab -l
#*/1 * * * * Server 1 check
*/1 * * * * Server 2 check
*/1 * * * * Server 3 check
[email protected]$ crontab -l | sed '/^#.*Server 1 check/s/^#//' | crontab -
[email protected]$ crontab -l
*/1 * * * * Server 1 check
*/1 * * * * Server 2 check
*/1 * * * * Server 3 check

Ответ 2

Я предлагаю вам добавить ваши задания cron на /etc/cron.d для каждого сервера script. Затем пусть cron script сканирует некоторый файл маркера, если должно выполняться задание cron.

Ответ 3

Это вариант, я использую cronjob, который загружает его самостоятельно каждую ночь. Я просто редактирую файл, и он перезагружается в 10 вечера каждую ночь. Вы можете сделать перезагрузку чаще. Я сохраняю каталог файлов для каждого из узлов. Фокус в том, что никто не комментирует линию перезагрузки.

0 22 * * * crontab /home/ME/cron_files/NODE

Ответ 4

Как быстрое и грязное исправление, вы можете включить или отключить разрешение на выполнение соответствующего cron script.

например. если вы хотите, чтобы предотвратить автоматическое обновление базы данных (что может быть использовано для ввода-вывода):

cd /etc/cron.daily

sudo chmod a-x locate

Это может быть против структуры cron, но оно быстро применяется, и оно работает в случае неотложных потребностей.