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. Modérateur
    Ok, et tu te bases sur quoi pour savoir que ça ne marche pas ?
    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
        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. 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,

            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. 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.
            2. 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 ;-)
            3. 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. 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. Modérateur
                N'oublie pas le 1 avant >>, car des fois, ça permet de trouver des choses qui sont pas trop standard...
                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. 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. 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 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