如何让crontab使用此脚本?

时间:2014-03-18 18:42:43

标签: centos crontab cacti

位于文件系统 - > tmp / crontab.iRppRO我有这个

1 * * * * /bin/bash ./usr/share/cacti/cli/cacti_moto_script.sh

这是我的脚本,当我在终端中运行时,它运行正常。它位于 /usr/share/cacti/cli/cacti_moto_script.sh

以及脚本。

 #!/bin/bash
php -q add_device.php --description="x.x.x.x" --ip="x.x.x.x" --template=29 --community="Canopy"
php -q add_device.php --description="x.x.x.x" --ip="x.x.x.x" --template=29 --community="Canopy"
php -q add_device.php --description="x.x.x.x" --ip="x.x.x.x" --template=29 --community="Canopy"
php -q add_device.php --description="x.x.x.x" --ip="x.x.x.x" --template=29 --community="Canopy"
php -q add_device.php --description="x.x.x.x" --ip="x.x.x.x" --template=29 --community="Canopy"
php -q add_device.php --description="x.x.x.x" --ip="x.x.x.x" --template=29 --community="Canopy"

我知道我已经安排了每1分钟一次的crontab(只是试图让它先工作)但是我希望它每小时一次。

1 个答案:

答案 0 :(得分:0)

检查您的环境变量。

Cron作业不会继承shell的环境变量。它们通常只会获得一些变量设置,例如$HOME$PATH(通常只有/usr/bin:/bin),$SHELL$PWD以及其他一些设置。< / p>

无论您的脚本需要什么样的环境变量都必须明确设置。您可以在crontab本身中执行此操作,也可以更新脚本以便设置它们(后者可能是更好的方法)。

顺便提一下,问题中的crontab:

1 * * * * /bin/bash ./usr/share/cacti/cli/cacti_moto_script.sh

将在小时后一分钟(每小时)尝试运行一次命令。要每分钟运行一次,请使用* * * * *

假设您的脚本以#!/bin/bash开头(必须位于第一行的开头),并且它具有执行权限(chmod +x),则无需调用{{ 1}}显式。您可以直接执行脚本。 (毕竟,这就是/bin/bash行的目的。)