【发布时间】:2018-03-11 01:50:37
【问题描述】:
我已经制作了以下 cronjob sh 文件:
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
当我手动运行此文件时,作业运行正常。
在 crontab 中安排时(root 用户)
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
它确实在请求的时间启动,但我认为它未能执行 sudo 行,因为 HDB 服务尚未重新启动。
我想知道为什么? 是因为 sudo 不能在 cronjob 中执行吗? (服务需要使用用户ndbadm启动)
路径: /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/games:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/ sbin
【问题讨论】:
-
显示准确您的脚本(每个代码行前有四个空格)和您的
crontab条目。阅读有关 PATH 的更多信息 - 您的crontab和您的终端中可能有所不同,您也应该展示它。所以编辑你的问题来改进它。你的脚本可执行吗? -
BTW
sudo可用于 cronjob(但您可能更喜欢/bin/su在特定情况下),但您可能需要配置更多/etc/sudoers文件 -
请适当地格式化您的问题:每个代码或命令行前四个空格!还要显示你的
PATH- 至少echo $PATH的输出! -
您仍然需要重新编辑。我猜有些
<br/>是错误的 -
抱歉我是新手