Crontab - Aucune execution

Résolu
cave2180 Messages postés 512 Statut Membre -  
gnugo Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'essaye de faire fonctionner un script en tache cron, mais rien ne fonctionne.
Voici l'affichage de mon crontab -e :
# m h dom mon dow command
00 02 * * * ./root/tsinctstop.sh
00 09 * * * ./root/tsinctstart.sh

Tous les jours a 2h et tous les jours à 9h.
Chaque script est en chmod 777.
Un de mes script :
#!/bin/sh
service teamspeakinct stop

1 réponse

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    récupérer les messages et erreurs
    00 02 * * * ./root/tsinctstop.sh >> /tmp/log 2>&1
    00 09 * * * ./root/tsinctstart.sh >> /tmp/log 2>&1
    0
    1. gnugo Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   46
       
      Salut
      Pourquoi ./root et pas juste /root ?

      Sinon oui le mieux est de voir ce que dit le log, on saura tout de suite
      0
    2. cave2180 Messages postés 512 Statut Membre 6
       
      /bin/sh: ./root/tsinctstop.sh: No such file or directory

      /bin/sh: ./root/tsinctstart.sh: No such file or directory

      Pourtant quand on regarde mon script, il y a rien d'incorrect.
      0
    3. gnugo Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   46
       
      Si, le chemin du fichier.

      Pourquoi avoir mis un point avant le /root ? à mon avec c'est ça si ton fichier se trouve bien dans /root
      0
    4. cave2180 Messages postés 512 Statut Membre 6
       
      J'avais mis le point car pour exécuter des scripts il faut faire ./script.ext

      En enlevant le point :

      /root/tsinctstop.sh: line 2: service: command not found

      /root/tsinctstart.sh: line 2: service: command not found

      #!/bin/sh
      service teamspeakinct stop

      #!/bin/sh
      service teamspeakinct start
      0
    5. gnugo Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   46
       
      Il faut faire ./script uniquement quand tu te trouves dans le dossier du script.
      Là il s'agit du répertoire /root ce n'est plus pareil. Par exemple /root/./script.sh serait correct même si inutile.

      Donc là bah y'a rien à dire ça fonctionne, ton script est exécuté.



      Mais on dirait qu'il ne trouve pas la commande service donc soit
      -remplace la commande service par /sbin/service dans ton script
      -soit charge l'environnement local via la crontab avant d'exécuter ton script :

      00 02 * * * . /root/.bash_profile; /root/tsinctstop.sh >> /tmp/log 2>&1
      00 09 * * * . /root/.bash_profile; /root/tsinctstart.sh >> /tmp/log 2>&1
      Dans ce cas le . équivaut à la commande source
      0