我编写了一个 cronjob 来每周重新启动一个明显内存泄漏的服务,并收到一封电子邮件,说killproc
找不到该命令。
那是在 /sbin/killproc 中,我不想修改服务脚本,尽管我更喜欢它使用绝对路径,所以我选择通过 cron 来隐藏我的修复。
所以,我不想PATH
按照手册页显然所说的那样设置 crontab 文件的顶部(根据我在互联网上看到的其他帖子,而不是我的手册页)。我怎样才能构建我的 crontab 行来为这个脚本设置一个路径变量(而不是完全压缩 root 的 PATH)?
太长;博士;
这就是我想做的
0 0 * * 0 /etc/init.d/tic_minus restart
这就是我想避免的
致:笨蛋
发件人:您所有的客户
停止 tic_minus:/etc/init.d/tic_minus:第 43 行:killproc:找不到命令
开始 tic_minus:
答案1
使用子 shell 来限制范围:
0 0 * * 0 (export PATH=$PATH:/sbin; /etc/init.d/tic_minus restart)
答案2
永远不要相信命令之前的 cron env -version => source env 设置。
0 0 * * 0 (. /usr/xx/myenv ; /some/cmd ) >> /usr/xx/mylog.log 2>&1
myenv 包含您需要的所有设置。 PATH 等。使用导出变量。