我有一个服务器监控脚本,除其他外,它使用以下命令检查 IPSec 隧道的状态
ipsec auto --status
当从控制台(以 root 身份)运行时,它的工作方式就像一个魅力,但一旦我从(root)cronjob 运行它,命令就会失败:根本没有输出。
我什至尝试创建这个简单的根 cronjob:
*/1 * * * * ipsec auto --status > /tmp/ipsec.txt
它所做的只是创建一个空的 /tmp/ipsec.txt 文件!
注意:脚本中的所有其他任务(包括网络和数据库访问)工作正常。
欢迎任何灯光。
答案1
听起来好像cron
没有ipsec
在路上看到。在 crontab 中包含二进制文件的绝对路径是一个非常好的习惯。/var/log/messages
或中可能有一些抱怨/var/log/cron
。
*/1 * * * * /usr/sbin/ipsec auto --status
您还可以将PATH
环境变量添加到 crontab 的顶部。这PATH
将适用于 crontab 中的所有作业。
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:
*/1 * * * * /usr/sbin/ipsec auto --status