web-dev-qa-db-fra.com

Obtenez une liste de tous les scripts et de leurs chemins qui sont exécutés en tant que tâche cron

Je recherche des scripts ou une commande de terminal pour lister tous les scripts actifs (de préférence avec leurs chemins), qui s'exécutent périodiquement par cron, cron.daily et/ou anacron. Je ne recherche pas de filtre pour une période spécifique du script et j'ai besoin de tous les scripts répertoriés (cependant certains administrateurs peuvent vouloir ce type de filtre).

Objectif: Documenter tous les scripts exécutés périodiquement, afin que le débogage ou la vérification des pannes, la mise à jour et le transfert vers un système plus récent soient faciles et efficaces.

Merci

2
ankit7540

Je ne sais pas si c'est ce que tu veux. J'ai trouvé cette réponse il y a quelque temps sur certains stackexchange et je l'utilise sur un serveur.

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

Cela répertoriera tous les crontabs pour tous les utilisateurs.

2
Operator

Comme pour tout ce que vous trouvez sur Internet, vous ne devez pas l'exécuter sans comprendre, mais ce qui suit obtiendra les noms de fichiers et les chemins d'affichage des scripts exécutés dans le cron.hourly/cron.daily/cron.monthly dossiers ... (CentOS dans mon cas)

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

essentiellement plusieurs versions de ceci:

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

Passez au répertoire puis pour chaque nom de fichier dans ls recherchez et affichez le chemin

EDIT: pour les codeurs qui aiment la structure ... même chose qu'une fonction:

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;
}

puis lancez:

AllTheCrons
0
cormpadre