В различных системах, которые я администрирую, есть сценарии cron, которые запускаются через обычно используемый /etc/cron.{hourly,daily,weekly}
макет. То, что я хочу знать, есть ли какие-либо общие функции «отключить этот скрипт».
Очевидно, что простое удаление чего-либо из заданного каталога отключит его, но я ищу более постоянное решение. Удаление /etc/cron.daily/slocate
будет работать, чтобы отключить ночной режим updatedb
на моем домашнем компьютере (где я никогда не использую slocate
), но в следующий раз, когда я обновлю пакет slocate, я почти уверен, что он появится снова.
Два дистрибутива, которые меня больше всего интересуют, это Gentoo и OpenSUSE, но я надеюсь, что есть широко реализованный механизм. Оба дистрибутива, так как я их использую, используют vixie-cron (не уверен, что это важно)
источник
chattr +i scriptname
послеchmod
.lsattr
для - удалить страшно (в нем перечислены атрибуты файла).run-parts не выполняет задания, в имени которых есть точка, поэтому
сделает свое дело.
источник
Обычно
cron.daily
вызывается через/etc/crontab
строку, например, напримерrun-parts --report /etc/cron.daily
man run-parts
дает вам варианты.run-parts --test /etc/cron.daily
показывает, какие задания выполняются без их запуска.Я предпочитаю создать подпапку «Disabled» и перенести туда свою работу.
В любом случае, если вы обновите пакет, вполне вероятно, что задание снова станет на свое место или что восстановленные биты «x» будут восстановлены.
источник
Вы можете удалить пакет slocate, если вы никогда не используете его.
источник
Если вы используете cfengine ( https://cfengine.com/ ), вы можете сделать это с отключением. Вы просто пишете файл обещания для группы хостов, и он применит себя при следующем запуске cfagent. Делать это с марионеткой, шеф-поваром или чем-то еще тоже должно быть довольно просто.
источник
/Etc/cron.daily et. и др. скрипты запускаются скриптом, называемым run-parts. Этот сценарий меняется. Например, упомянутый выше ключ --test отсутствует на компьютере, которым я сейчас пользуюсь.
Run-parts - это скрипт bash. Это обычно полезный инструмент для запуска всех сценариев в каталоге, указанном в качестве аргумента. Обычно он находится в / usr / bin / run-parts.
Это имеет путаницу логики для решения, что бежать. Этот код содержит ответ на ваш вопрос, но он также различается. Поэтому вам нужно прочитать код, чтобы быть в безопасности.
В версии, которую я смотрю, есть логика, которая при работе с каталогом <foo> проверяет наличие <foo> /jobs.deny. Если он существует, он отказывается запускать какой-либо сценарий, упомянутый в этом файле, в одиночку. Предполагая, что у вас есть эта функциональность, это потрясающе, потому что она будет продолжать работать после установки или обновления устанавливаемого пакета.
источник
Если вы имеете дело с RHEL и производными (которые предоставляют
crontabs
пакет), вы можете явно отключить задание, поместив его имя вjobs.deny
файл.Из справочной страницы crontabs / run-parts :
источник
Если вы также не хотите использовать пользовательские crontabs, просто отключите crond в вашем списке служб.
В Debian и версиях, основанных на Debian, это просто вопрос удаления символической ссылки из соответствующего файла /etc/rcX.d (для уровня запуска X).
Я не знаю, как вы обрабатываете сервисы в SUSE или Gentoo.
источник