J'ai fait le fichier sh cronjob suivant:Cronfile n'a pas exécuté la ligne sudo -u?
Vi RestartServices.sh
/etc/init.d/b1s stop
sleep 10
/etc/init.d/sapb1servertools stop
sleep 10
sudo -u ndbadm /usr/sap/NDB/HDB00/HDB stop
sleep 20
sudo -u ndbadm /usr/sap/NDB/HDB00/HDB start
sleep 10
/etc/init.d/sapb1servertools start
sleep 10
/etc/init.d/b1s start
Quand je lance ce fichier manuellement le travail est exécuté correctement.
Lorsque prévu dans crontab (utilisateur root)
contenu Crontab:
# srvmagtCron: restarts daemons that died
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /bin/sh -c "[ -x /etc/srvmagt/srvmagtCron ] && /etc/srvmagt/srvmagtCron"
0 2 * * * /hanamnt/shared/NDB/HDB00/backup/scripts/VGRbackup.sh
#RESTARTS SERVICE LAYER , SAPB1ServerTools service , HDB
0 3 * * * /hanamnt/shared/NDB/HDB00/backup/scripts/RestartServices.sh
Il ne commencer à l'heure demandée, mais je pense qu'il a échoué à exécuter la ligne sudo que le service HDB n'a pas été redémarré.
J'essaie de savoir pourquoi? Est-ce parce que sudo ne peut pas être exécuté dans un cronjob? (service doit commencer à utiliser l'utilisateur ndbadm)
chemin: /opt/sap/sapjvm_6 // bin:/opt/fujitsu/bwai/bin:/sbin:/usr/sbin:/usr/local/sbin :/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/jeux:/usr/lib64/jvm/jre/bin :/usr/lib/mit/bin:/usr/lib/mit/sbin
Montrez * exactement * votre script (avec quatre espaces devant chaque ligne de code) et votre entrée 'crontab'. En savoir plus sur [PATH] (https://en.wikipedia.org/wiki/PATH_ (variable)) - il est probablement différent dans votre 'crontab' et dans votre terminal, et vous devriez le montrer aussi. Alors ** éditez votre question ** pour l'améliorer beaucoup. Votre script est-il exécutable? –
BTW 'sudo' peut être utilisé dans un cronjob (mais vous préférerez peut-être'/bin/su' dans votre cas), mais vous devrez peut-être configurer davantage votre fichier '/ etc/sudoers' –
Please ** formater votre question de manière appropriée: ** quatre espaces devant chaque code ou ligne de commande! Montrez aussi votre 'PATH' - la sortie de' echo $ PATH' au moins! –