Crontab

Bonjour à tous,

Voici mon problème, je voulais faire redémarrer samba tous les soir par le cron, mais ça ne marche pas .

J'avais fait:
- crontab -e
- 0 21 * * * /etc/init.d/samba restart
- esc : wq (pour sauvegarder)
Et ça me disait qu'il avait sauver le nouveau fichier. si je le ré-ouvre, je vois bien ma ligne.

Est-ce qu'il y aurait une erreur dans cette ligne, ou est-ce que je dois relancer un démon quelconque ou faire exécuter la ligne par un utilisateur spécifique pour que ça marche ( ça tourne sur une debian etch )
(il y a bien un 'samba' dans '/etc/init.d', et qui fonctionne lorsqu'on le lance à la main)

Merci d'avance pour votre aide.

Amicalement, Ivy
Configuration: Windows XP
Firefox 3.0.14

16 réponses

  1. Bonjour jipicy et blux,

    alors, /root/misc/restart_samba.sh :
    #............................................................................................................................
    #!/bin/bash
    /etc/init.d/samba restart
    #............................................................................................................................
    Quand je tape cette commande à la main il me semble que ça fonctionne .

    et /etc/init.d/samba :
    #............................................................................................................................
    #!/bin/sh

    # Defaults
    RUN_MODE="daemons"

    # Reads config file (will override defaults above)
    [ -r /etc/default/samba ] && . /etc/default/samba

    NMBDPID=/var/run/samba/nmbd.pid
    SMBDPID=/var/run/samba/smbd.pid

    # clear conflicting settings from the environment
    unset TMPDIR

    # See if the daemons are there
    test -x /usr/sbin/nmbd -a -x /usr/sbin/smbd || exit 0

    . /lib/lsb/init-functions

    case "$1" in
    start)
    log_daemon_msg "Starting Samba daemons" "nmbd"

    if ! start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/nmbd -- -D; then
    log_end_msg 1
    exit 1
    fi

    if [ "$RUN_MODE" != "inetd" ]; then
    log_progress_msg "smbd"
    if ! start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/smbd -- -D; then
    log_end_msg 1
    exit 1
    fi
    fi

    log_end_msg 0
    ;;
    stop)
    log_daemon_msg "Stopping Samba daemons" "nmbd"

    start-stop-daemon --stop --quiet --pidfile $NMBDPID
    # Wait a little and remove stale PID file
    sleep 1
    if [ -f $NMBDPID ] && ! ps h `cat $NMBDPID` > /dev/null
    then
    # Stale PID file (nmbd was succesfully stopped),
    # remove it (should be removed by nmbd itself IMHO.)
    rm -f $NMBDPID
    fi

    if [ "$RUN_MODE" != "inetd" ]; then
    log_progress_msg "smbd"
    start-stop-daemon --stop --quiet --pidfile $SMBDPID
    # Wait a little and remove stale PID file
    sleep 1
    if [ -f $SMBDPID ] && ! ps h `cat $SMBDPID` > /dev/null
    then
    # Stale PID file (nmbd was succesfully stopped),
    # remove it (should be removed by smbd itself IMHO.)
    rm -f $SMBDPID
    fi
    fi

    log_end_msg 0

    ;;
    reload)
    log_daemon_msg "Reloading /etc/samba/smb.conf" "smbd only"

    start-stop-daemon --stop --signal HUP --pidfile $SMBDPID

    log_end_msg 0
    ;;
    restart|force-reload)
    $0 stop
    sleep 1
    $0 start
    ;;
    *)
    echo "Usage: /etc/init.d/samba {start|stop|reload|restart|force-reload}"
    exit 1
    ;;
    esac

    exit 0
    #............................................................................................................................

    Merci
    1. Modérateur
      Commence par nous afficher le contenu de :
      
      cat -n /etc/init.d/samba

      peut être y verrons-nous un peu mieux ;-))
      1. Modérateur
        Et aussi /root/misc/restart_samba.sh, car on appelle peut-être samba avec des paramètres...
    2. Bonjour à tous,

      bon, on a eu quelque problèmes entre temps , d'où le fait que je ne réponde que maintenant

      Résultat, mon samba n'a pas redémarré, voici la ligne du crontab :

      0 6 * * * /root/misc/restart_samba.sh >>/root/misc/rsSmb.txt 2>&1

      et dans le rsSmb.txt:

      Stopping Samba daemons: nmbd/etc/init.d/samba: line 46: start-stop-daemon: command not found
      smbd/etc/init.d/samba: line 58: start-stop-daemon: command not found
      .
      Starting Samba daemons: nmbd/etc/init.d/samba: line 28: start-stop-daemon: command not found
      failed!

      Quelqu'un pourrait-il éclairé ma lanterne (rouge) ?

      Merci d'avance
      1. "Ok, j'ai pas vu, mais franchement entre 12h00 et 14h00 il faut appeller les gens au bureau, il y forte chance qu'il ne soient pas là ;-DDD "

        C'est peut-être vrai chez les fonctionnaires, mais nous on est indépendant, et qui plus est avec des horaires souples, ça fait qu'entre 6h45 et 9h30, parfois même plus tard, il y a quasi toujours quelqu'un (c'est bien soulant d'ailleurs)

        "Et puis un admin système peut envoyer un message en disant que entre tel et tel heure il y aura un test sur le serveur, mais bon.."
        C'est vrai mais je me gène ^_^
        1. Modérateur
          N'oublie pas le 1 avant >>, car des fois, ça permet de trouver des choses qui sont pas trop standard...
          1. Modérateur
            Re,

            Là, et maintenant il n'y à plus qu'à 'attendre' demain pour voir si ça fonctionne ou pas.

            Pourquoi attendre demain?
            Tu peux tester toute de suite (remplace H et M avec l'heure et minute désirer, par exemple après une minute selon ton horologe système)

            M H * * * /root/misc/restart_samba.sh >>/root/misc/rsSmb.txt 2>&1 


            1. Modérateur
              Salut,

              Vu plus haut :
              (en plus comme tu le vois j'ai bêtement choisis 21h pour tester, et il y a encore des gens qui bossent à cette heure, s'ils avaient été coupé. même brièvement, ils me l'auraient fait savoir... enfin ... en principe ^_^ )


              ;-))
            2. Modérateur
              @jipicySalut,

              Ok, j'ai pas vu, mais franchement entre 12h00 et 14h00 il faut appeller les gens au bureau, il y forte chance qu'il ne soient pas là ;-DDD
              Et puis un admin système peut envoyer un message en disant que entre tel et tel heure il y aura un test sur le serveur, mais bon...
          2. D'oh !!j'ai raté ce message Oo

            Effectivement les autres commandes du cron appellent toutes des scriptes

            donc j'ai fait un scripte restart_samba.sh avec
            #!/bin/bash
            /etc/init.d/samba restart

            Je l'ai rendu exécutable avec
            "chmod 755 restart_samba.sh"

            Le l'appel (mais à 6h du matin cette fois) depuis crontab avec :
            0 6 * * * /root/misc/restart_samba.sh >>/root/misc/rsSmb.txt 2>&1

            Là, et maintenant il n'y à plus qu'à 'attendre' demain pour voir si ça fonctionne ou pas.

            Je vous tient au courant,

            Merci,

            Ivy
            1. Je peux faire ça comment ?
              Bon c'est pratique de logger samba, mais je SAIS qu'il ne fonctionne pas( pour les raisons citées plus haut)
              Donc c'est plutôt ça qui m'intéresse avant tout
              1. Modérateur
                Je peux faire ça comment ?
                C'est expliqué au message #7.
              2. Modérateur
                Il te suffit de lire le message 7 ;-)
            2. Bonjour jivef et blux,

              Merci pour vos réponses.

              Alors pour répondre à vos questions, non je ne vois pas de log dans le syslog par contre je vois bien ma ligne avec crontab -l
              1. Modérateur
                donc mets une trace.
            3. Modérateur
              Salut,

              peut-être un problème d'espace...
              Essaie de mettre ta commande dans un script et de l'appeler dans ton cron...

              Trace également la ligne d'exécution :

              0 21 * * * /home/smbrestart.sh 1 >>/home/trace.txt 2>&1
              1. Bonsoir,

                Si tu fais un "crontab -l" (lettre l comme Lima) est-ce que tu vois bien ta tâche ?

                A plus.
                1. Modérateur
                  Salut,

                  Regarde dans les mail, pour voir ce que dit cron.
                  Regarde dans /var/log/syslog pour voir si le cron s'exécute.
                  1. Je regarde dans les log du nmbd de samba, et on voit bien qu'il ne s'est pas arrêter car il n'y a plus de log depuis le dernier redémarrage, en plus on utilise nagios et quand j'arrive le matin et que je vois que samba est up depuis plusieurs jours, je me dit qu'il n'a pas redémarré.

                    (en plus comme tu le vois j'ai bêtement choisis 21h pour tester, et il y a encore des gens qui bossent à cette heure, s'ils avaient été coupé. même brièvement, ils me l'auraient fait savoir... enfin ... en principe ^_^ )

                    je peux voir ça ailleurs ? par ce que dans le log de samba log.smbd j'ai rien de relatif au reboot de samba
                    1. Modérateur
                      Ok, et tu te bases sur quoi pour savoir que ça ne marche pas ?