Obtenga una lista de todos los scripts y sus rutas que se ejecutan como trabajo cron

Obtenga una lista de todos los scripts y sus rutas que se ejecutan como trabajo cron

Estoy buscando algunos scripts o un comando de terminal para enumerar todos los scripts activos (preferiblemente con sus rutas), que se ejecutan periódicamente mediante cron, cron.daily y/o anacron. No estoy buscando un filtro para un período de tiempo específico del script y necesito todos los scripts enumerados (sin embargo, algunos administradores pueden querer este tipo de filtro).

Objetivo:Documentar todos los scripts que se ejecutan periódicamente, de modo que la depuración o verificación de fallas, la actualización y la transferencia a un sistema más nuevo sea fácil y eficiente.

Gracias

Respuesta1

No estoy seguro de si esto es lo que quieres. Encontré esta respuesta hace algún tiempo en algún intercambio de pila y la uso en un servidor.

for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done

Esto enumerará todos los crontabs de todos los usuarios.

Respuesta2

En cuanto a cualquier cosa que encuentre en Internet , no debe ejecutarlo sin comprenderlo, pero lo siguiente obtendrá los nombres de archivos y mostrará las rutas para los scripts que se ejecutan en las carpetas cron.hourly// ... (CentOS en mi caso)cron.dailycron.monthly

cd /etc/cron.hourly/&&for i in $(ls);do find `pwd` -name $i;done&&cd /etc/cron.daily/&&for i in $(ls);do find `pwd` -name $i;done&&cd /etc/cron.weekly/&&for i in $(ls);do find `pwd` -name $i;done&&cd /etc/cron.monthly/&&for i in $(ls);do find `pwd` -name $i;done

básicamente múltiples versiones de esto:

cd /etc/cron.hourly/&&for i in $(ls);do find 'pwd' -name $i;done

Cambie al directorio y luego, para cada nombre de archivo, lsbusque y muestre la ruta

EDITAR: para programadores a quienes les gusta la estructura... lo mismo que una función:

function AllTheCrons {
    cd /etc/cron.hourly/
    for i in $(ls);
        do
            find `pwd` -name $i;
        done;
    cd /etc/cron.daily/
    for i in $(ls);
        do
            find `pwd` -name $i;
        done;
    cd /etc/cron.weekly/
    for i in $(ls);
        do
            find `pwd` -name $i;
        done;
    cd /etc/cron.monthly/
    for i in $(ls);
        do
            find `pwd` -name $i;
        done;
}

entonces corre:

AllTheCrons

información relacionada