![легко включить или отключить cron](https://rvso.com/image/568236/%D0%BB%D0%B5%D0%B3%D0%BA%D0%BE%20%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%20%D0%B8%D0%BB%D0%B8%20%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%20cron.png)
Всякий раз, когда мне нужно включить cron, я копирую cron-файл в папку спула.
cp /home/shantanu/shantanu /var/spool/cron/
chown shantanu:root /var/spool/cron/shantanu
Будет ли это работать? С какими проблемами я могу столкнуться?
обновление: использование CentOS
решение1
Официальный способ отключить некоторые задания cron для конкретного пользователя — ввести crontab -e -u <user>
и поставить #
в начале символ «a», чтобы закомментировать.
ОБНОВЛЯТЬ
Потому что cron-файл будет частью скрипта оболочки.
Попробуй это:
crontab -l -u shantanuo > shantanuo.cron
sed -i 's/^/#/' shantanuo.cron
crontab shantanuo.cron
rm -f shantanuo.cron
решение2
Этоможетработа.Но..
Как сказали предыдущие постеры: Не делайте этого. Используйте crontab -e
. Прямое редактирование файлов может работать, но это ненадежная практика. Ваши вещи могут сломаться в любой момент при обновлении задействованных компонентов. Кроме того, это не очень переносимо, другие системы могут хранить файлы в другом месте. Это как реализовать "printf" самостоятельно вместо использования стандартного iolib.
Так что не делайте этого таким образом.
правка: А если вам нужно сгенерировать crontab с помощью скрипта оболочки, то просто передайте свои данные в crontab
(он даже знает псевдофайл '-'! Прочитайте страницу руководства).
решение3
Почему бы просто не использовать команду crontab -e
или, если вы вошли в систему как root, crontab -e -u shantanu
?
решение4
Если вы хотите приостановить выполнение заданий без необходимости перезапускать cron (что может повлиять на выполнение заданий, например, каждые 3 минуты), вы можете использовать файлы блокировки, которые легко создаются или удаляются в скрипте.
*/3 0 * * * [ ! -f /tmp/job.lock ] && /path/to/job
Итак, чтобы приостановить работу, используйте:
touch /tmp/job.lock
Перезапустите планирование в cron:
rm /tmp/job.lock
Прелесть этого в том, что вы можете использовать разные файлы блокировки для разных заданий (или групп заданий, если все они используют один и тот же файл блокировки), не беспокоясь о прерывании планирования или поломке cron из-за ошибок при редактировании (с помощью скрипта или вручную) crontab.