En varios sistemas que administro, hay scripts cron que se ejecutan a través del /etc/cron.{hourly,daily,weekly}diseño de uso común . Lo que quiero saber es si hay alguna funcionalidad común de 'deshabilitar este script'.
Obviamente, simplemente eliminar algo de un directorio dado lo deshabilitará, pero estoy buscando una solución más permanente. La eliminación /etc/cron.daily/slocatefuncionará para deshabilitar todas las noches updatedben mi máquina doméstica (donde nunca la uso slocate), pero la próxima vez que actualice el paquete Slocate, estoy bastante seguro de que volverá a aparecer.
Las dos distribuciones que más me interesan son Gentoo y OpenSUSE, pero espero que haya un mecanismo ampliamente implementado. Ambas distribuciones como las tengo usan vixie-cron (no estoy seguro de que importe).
fuente

chattr +i scriptnamedespués dechmod.lsattrestá: para eliminar el miedo (enumera los atributos de un archivo).run-parts no ejecuta trabajos que tienen un punto en su nombre, así que
Hará el truco.
fuente
Por
cron.dailylo general, se invoca a/etc/crontabtravés de una línea como, por ejemplo,run-parts --report /etc/cron.dailyman run-partste da las opciones.run-parts --test /etc/cron.dailymuestra qué trabajos se ejecutan sin ejecutarlos.Prefiero hacer un subdirectorio 'Desactivado' y mover mis trabajos allí.
En cualquier caso, si actualiza un paquete, es probable que el trabajo vuelva a su lugar o que los bits 'x' eliminados se restauren
fuente
Puede eliminar el paquete slocate si nunca lo usa.
fuente
Si usa cfengine ( https://cfengine.com/ ) podría hacerlo con deshabilitar. Simplemente escriba un archivo de promesa para un grupo de hosts y se aplicará en la próxima ejecución de cfagent. Hacer esto con títeres o chef o lo que sea también debería ser bastante simple.
fuente
El /etc/cron.daily et. Alabama. los guiones son ejecutados por un guión llamado run-parts. Ese guión varía. Por ejemplo, el interruptor --test mencionado anteriormente no está en la máquina que estoy usando en este instante.
Run-parts es un script bash. Es una herramienta generalmente útil para ejecutar todos los scripts en el directorio que se proporciona como argumento. Generalmente se encuentra en / usr / bin / run-parts.
Tiene una maraña de lógica para decidir qué ejecutar. Ese código contiene la respuesta a su pregunta, pero también varía. Por lo tanto, debe leer el código para estar seguro.
En la versión que estoy viendo, tiene una lógica que, cuando se trabaja en el directorio <foo>, busca <foo> /jobs.deny. Si eso existe, declina ejecutar cualquier script que se mencione en ese archivo en una línea, solo. Suponiendo que tenga esta funcionalidad, es increíble porque seguirá funcionando cuando el paquete que se instala se instala o actualiza.
fuente
Si se trata de RHEL y derivados (que proporciona el
crontabspaquete), puede deshabilitar explícitamente un trabajo al poner su nombre en eljobs.denyarchivo.Desde la página del manual crontabs / run-parts :
fuente
Si tampoco desea los crontabs de usuario, simplemente desactive crond en su lista de servicios.
En Debian y versiones basadas en Debian, esto es simplemente una cuestión de eliminar el enlace simbólico del /etc/rcX.d apropiado (para el nivel de ejecución X).
No sé cómo maneja los servicios en SUSE o Gentoo.
fuente