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