0

位于文件系统-> 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(只是想让它先工作),但我希望每小时一次。

4

1 回答 1

0

检查您的环境变量。

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

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

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

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

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

并假设您的脚本以#!/bin/bash(必须在第一行的开头)开头,并且它具有执行权限(chmod +x),您不需要/bin/bash显式调用。您可以直接执行脚本。#!(毕竟,这就是这条线的用途。)

于 2014-03-18T21:54:59.283 回答