W różnych systemach, którymi administruję, istnieją skrypty cron uruchamiane za pomocą powszechnie używanego /etc/cron.{hourly,daily,weekly}
układu. Chcę wiedzieć, czy istnieje jakakolwiek wspólna funkcja „wyłącz ten skrypt”.
Oczywiście, po prostu usunięcie czegoś z danego katalogu spowoduje jego wyłączenie, ale szukam bardziej trwałego rozwiązania. Usunięcie /etc/cron.daily/slocate
zadziała, aby wyłączyć funkcję nocną updatedb
na moim komputerze domowym (gdzie nigdy nie używam slocate
), ale następnym razem zaktualizuję pakiet Slocate, jestem prawie pewien, że ponownie się pojawi.
Dwie dystrybucje, które najbardziej mnie interesują, to Gentoo i OpenSUSE, ale mam nadzieję, że istnieje szeroko wdrożony mechanizm. Obie dystrybucje, jak je mam, używają vixie-cron (nie jestem pewien, czy to ma znaczenie).
źródło
chattr +i scriptname
pochmod
.lsattr
jest - aby usunąć przerażające (zawiera listę atteibutes pliku).części wykonawcze nie wykonują zadań, które mają kropki w nazwie, więc
da rade.
źródło
Zwykle
cron.daily
wywoływany jest/etc/crontab
przez linię taką jak nprun-parts --report /etc/cron.daily
man run-parts
daje ci opcje.run-parts --test /etc/cron.daily
pokazuje, które zadania są wykonywane bez ich uruchamiania.Wolę stworzyć podkatalog „Wyłączony” i przenieść tam swoje prace.
W każdym razie, jeśli zaktualizujesz pakiet, jest prawdopodobne, że zadanie wróci na miejsce lub że usunięte bity „x” zostaną przywrócone
źródło
Możesz usunąć pakiet slocate, jeśli go nigdy nie użyjesz.
źródło
Jeśli używasz cfengine ( https://cfengine.com/ ), możesz to zrobić z wyłączeniem. Wystarczy napisać plik obietnicy dla grupy hostów, który zastosuje się w następnym uruchomieniu cfagent. Robienie tego z marionetką lub szefem kuchni lub czymkolwiek powinno być również dość proste.
źródło
The /etc/cron.daily et. glin. skrypty są uruchamiane przez skrypt o nazwie run-parts. Ten skrypt jest różny. Na przykład wspomnianego powyżej przełącznika --test nie ma na komputerze, którego używam w tej chwili.
Run-parts to skrypt bashowy. Jest to ogólnie przydatne narzędzie do uruchamiania wszystkich skryptów w katalogu podanym jako argument. Zwykle znajduje się w / usr / bin / run-parts.
Ma plątaninę logiki przy podejmowaniu decyzji, co uruchomić. Ten kod zawiera odpowiedź na twoje pytanie, ale również jest różny. Musisz więc przeczytać kod, aby być bezpiecznym.
W wersji, na którą patrzę, jest logika, która podczas pracy nad katalogiem <foo> sprawdza, czy <foo> /jobs.deny. Jeśli tak, odmawia uruchomienia samego skryptu wymienionego w tym pliku w wierszu. Zakładając, że masz tę funkcjonalność, jest niesamowita, ponieważ będzie działać, gdy pakiet, który instaluje, zostanie zainstalowany lub zaktualizowany.
źródło
W przypadku RHEL i pochodnych (które zapewnia
crontabs
pakiet), możesz jawnie wyłączyć zadanie, umieszczając jego nazwę wjobs.deny
pliku.Ze strony podręcznika crontabs / run-parts :
źródło
Jeśli nie chcesz też crontabs użytkownika, po prostu wyłącz crond na liście usług.
W Debianie i wersjach opartych na Debianie jest to po prostu kwestia usunięcia dowiązania symbolicznego z odpowiedniego pliku /etc/rcX.d (dla poziomu uruchamiania X).
Nie wiem, jak radzisz sobie z usługami w SUSE lub Gentoo.
źródło