已解决:在/var/spool/cron/root中执行shell脚本定时任务,ipvsadm-save -n > x.save保存的文件为空

root # crontab -l
0 1 * * *  sh /opt/lvs_conf_bak.sh &>/dev/null

root # cat  /opt/lvs_conf_bak.sh

#!/bin/sh
...

ipvsadm-save -n > x.save
...

 

解决方案1:

ipvsadm-save  使用全路径

root # which ipvsadm-save
/usr/sbin/ipvsadm-save

解决方案2:

脚本开头加载root环境变量

#!/bin/sh
source /etc/profile

 解决方案3:

把定时任务写入到  /etc/crontab,注意加上执行用户

0 1 * * *  root sh /opt/lvs_conf_bak.sh &>/dev/null

 原因分析:

shell脚本中的PATH变量默认是/usr/bin:/bin

如果脚本中包含root权限的命令(../sbin/xx),放到/var/spool/cron/root 中执行,就会有root环境变量导致执行失败的问题

posted @ 2020-09-24 10:32  M1927  阅读(145)  评论(0编辑  收藏  举报