2017-04-01 3 views
0

J'ai un script bash qui doit être exécuté tous les jours à 21h30. son appelé fetchIND.sh et j'ai fait l'entrée pour cela dans mon onglet avec la spécification des paramètres de shell et de chemin comme suit. Il est censé récupérer des fichiers d'un autre serveur avec sftp et fonctionne correctement manuellement. Cependant, avec crontab ne s'exécute pas.Crontab n'exécutera pas mon script qui s'exécute manuellement

Mon entrée crontab:

06 21 * * * root/usr/bin/bash /root/IND/fetchIND.sh

résultats après « ps aux | commande bash grep:

racine 5815 0,0 0,0 8984 808 pts/0 S + 21h06 00h00 grep --color = bash auto

Cependant, mon script n'éxécute pas. Toute aide à ce sujet serait géniale. Merci!!

+0

Veuillez prendre un Regardez [edit-help] (http://stackoverflow.com/editing-help). – Cyrus

Répondre

0

Le cron pourrait essayer d'exécuter ceci dans un shell cron qui pourrait ne pas avoir l'autorisation d'exécuter la commande dans le shell racine. Ajouter un sudo pourrait faire le travail

Reportez-vous à cela pour plus https://superuser.com/a/1046126

0

(Sous la direction une suggestion de vérifier la syntaxe - cela semble être valable pour d'autres suggestions CentOS Donner, a ajouté les détails -.. Désolé je n'ai pas assez de karma pour commenter, hehe)

votre script peut dépendre de choses qui sont différentes lorsqu'il est invoqué par le démon cron: les variables d'environnement que vous pourriez avoir modifié dans votre shell, l'accès à un téléscripteur, etc.

vous pouvez déboguer en ajoutant une redirection:

06 21 * * * root /usr/bin/bash /root/IND/fetchIND.sh 2>&1 >> /tmp/trace_when_running_from_crontab.log 
+0

Salut. La raison 'root' est présente parce que mon crontab demande de spécifier le nom d'utilisateur avant la commande. Je travaille avec Cent OS donc le format est probablement différent – Vedant7