• Serveurs
  • Les scripts dans "cron.daily" ne se lancent pas !

Bonjour,

Je tourne sous Ubuntu 16.04 (arm64), et je rencontre le souci suivant :

Les scripts présents dans le dossier "/etc/cron.daily" ne se lancent pas, pourquoi ?

Infos :

1 - Mon fichier "/etc/crontab" contient les lignes suivantes :

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user	command
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6 * * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	 * * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

-> Donc "cron" est censé lancer "anacron" en mode "daily" tous les jours à 06:25.

2 - Le fichier "/usr/sbin/anacron" est bien présent sur mon serveur.

3 - Dans le dossier "/etc/cron.daily", mes scripts ne possèdent pas de "." dans leur nom.

4 - Dans ces scripts, il y a plusieurs scripts qui me seraient utiles comme :

logwatch
logrotate
rkhunter

5 - Les scripts dans le dossier "/etc/cron.daily" ont bien les bons droits en exécution, etc.

6 - Cron est bien paramétré pour démarrer au démarrage du système

7 - J'ai déjà essayé de lancer la commande "run-parts --report /etc/cron.daily" manuellement, et le seul script qui s'exécute correctement est "rkhunter".

8 - On est bien daccord que la commande "run-parts --report /etc/cron.daily" lance tous les scripts présents dans le dossier "/etc/cron.daily" ?

J'ai cherché sur le net mais la plupart des gens rencontraient des soucis à cause du "." dans le nom de leur script, ou avaient des problèmes de droits sur leurs scripts, etc.

Je ne vois plus où chercher, si quelqu'un a une idée, je suis preneur.

Par avance, merci 🙂

Tu es sûr qu'aucun de tes scripts de "cron.daily" n'est exécuté ?
Tu peux tenter de créer un script bateau style "echo toto", si t'as config tes useralias, tu devrais recevoir un mail avec "toto" logiquement.
Et pour faire tes tests, tu peux modifier l'horaire de ton cron.daily sous /etc/crontab

Re,

J'ai fais le test suivant :

1 - Création d'un mini script "monscript" (pas de "." dans le nom) dans "/etc/cron.daily" avec les droits root 770, qui génèrera un fichier dans mon "/home/luffyyfful/testcron.txt"

2 - Dans le fichier "/etc/crontab", modification de l'heure d'exécution de la ligne

"25 6 root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )"

afin de faire mon test dans les 5min qui viennent.

3 - service cron restart

4 - Log après exécution

Dec  9 16:10:01 monkeydc2 CRON[32069]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ))

5 - Le fichier qui doit être généré n'a pas été généré par cron.daily.

6 - Ce script fonctionne très bien quand je le lance à la main et génère bien mon fichier

Donc oui, aucun script présent dans le dossier "/etc/cron.daily" n'est joué :/

Tout ce qui est paramétré dans "/etc/crontab" est bien lancé et fonctionne, mais les commandes suivantes ne fonctionnent pas :

17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
10 16	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Nebukad J'ai regardé, mais je ne comprends pas où j'aurai un problème de chemin.

Pour mon dernier test, mon script "monscript" est le suivant :

echo test > /home/luffyyfful/testcron.txt

Je devrais mettre "/usr/bin" devant mon echo ? echo n'est pas un binaire non ?

C'est possible que tu poste le script ou tu me l'envoi par mail.

    xavier Le script de test que j'ai fait (présent ici "/etc/cron.daily/monscript") fait juste un echo :

    echo toto > /home/luffyyfful/testcron.txt
    

    voici la nouveau fichier

    # /etc/anacrontab: configuration file for anacron
    
    # See anacron(8) and anacrontab(5) for details.
    
    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    HOME=/root
    LOGNAME=root
    
    # These replace cron's entries
    1       5       cron.daily      run-parts --report /etc/cron.daily
    7       10      cron.weekly     run-parts --report /etc/cron.weekly
    @monthly        15      cron.monthly    run-parts --report /etc/cron.monthly

      xavier J'ai bien anacron d'installé et mon fichier de configuration "anacrontab" est bien identique au tien

      donc ça a l'air de fonctionner
      dans /etc/cron.daily j'ai créé un fichier monscript en chmod 755 monscript

      #!/bin/sh
      
      echo "toto" > /root/testcron.txt
      

      et un

      run-parts --report /etc/cron.daily

      me créer bien le fichier avec toto dedans

        xavier Ca marche aussi pour moi. En fait quand je lance la commande "run-parts --report /etc/cron.daily" manuellement j'ai que 2 scripts sur 10 qui se lancent :

        monscript (test) OK
        rkhunter OK
        logrotate KO
        logwatch KO
        etc KO

        Mais quand la commande suivante est lancée via "crontab", aucun script n'est lancé :

        20 19	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

        on va test un truc.
        commente la ligne et change là par :

        20 19 * root cd / && run-parts --report /etc/cron.daily 

        Jai fait la modif que tu m'as dit et aucun script ne s'est lancé.

        50 19 * root cd / && run-parts --report /etc/cron.daily

        Et à 19:50 je n'ai rien dans le syslog.

          remet comme avant et fait le avec

          crontab -e

          sinon la je vois plus 🙁

            xavier Dans crontab -e ca fonctionne à part quelques scripts qui ne se lancent pas (logrotate, logwatch, etc.) mais il y a du mieux.

            Quel est la différence entre crontab -e et crontab ?

            Merci

            c'est la même chose
            crontab et le logiciel
            crontab -e est pour éditer le fichier
            et
            crontab -l pour listé toutes les taches (script)

              xavier Mais pourquoi "crontab -e" n'édite pas le fichier "/etc/crontab" ?

              J'aimais bien modifier que le fichier "/etc/crontab" en fait

              Sinon, pour les scripts qui ne se lancent pas (logrotate par exemple) présents dans "/etc/cron.daily" avez-vous une idée ?

                LuffyyffuL

                Pour :

                • logrotate *

                J'ai résolu le problème en rajoutant "-f" à la commande présente dans le script "/etc/cron.daily/logrotate"

                 "/usr/sbin/logrotate /etc/logrotate.conf" par "/usr/sbin/logrotate -f /etc/logrotate.conf"
                • rkhunter *

                J'avais juste un souci d'aliases