2013-02-14 8 views
0

Lorsque je lance un script manuellement en utilisant root, cela fonctionne très bien. quand j'exécute le même script à l'intérieur de cron, il ne fonctionne pas. J'ai vérifié que le cron est en train d'appeler le script mais que le script ne s'exécute pas. J'ai exporté la sortie d'echos dans le script vers le fichier texte mais le fichier texte n'a rien enregistré. S'il vous plaît vérifier Croncrontab ne fonctionne pas correctement

*/10 * * * * sh /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt 
+0

à partir de quel utilisateur crontab exécute votre script? – pomaxa

+2

Ajoutez la redirection '2> & 1' pour obtenir' stderr' dans votre fichier journal aussi. –

+0

@Anton Je suis désolé Im un débutant. Où ajouter ce 2> & 1 dans ce script. – user1597811

Répondre

3

Essayez de changer sh pour /bin/sh.

*/10 * * * * /bin/sh /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt 
5

Une autre approche pour éviter de taper des chemins exécutables complet est de mettre les variables globales shell en haut de votre crontab:

SHELL=/bin/sh 
PATH=/bin:/usr/bin:/usr/local/bin 
[email protected] 

*/10 * * * * stuff > log 2>&1 

Notez la syntaxe > log 2>&1 pour vous connecter à la fois STDERR & STDOUT dans le fichier journal

+0

J'ai le même problème, en utilisant curl ça ne marche pas mais/usr/bin/curl ça marche parfaitement – vuhung3990

Questions connexes