Centos 如何让crontab使用此脚本?

Centos 如何让crontab使用此脚本?,centos,crontab,cacti,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" --temp

位于文件系统->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"

我知道我已将crontab计划为每1分钟运行一次,只是想先让它工作,但我希望它每小时运行一次。

检查您的环境变量

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。您可以直接执行脚本。这就是为什么!毕竟,这一行是为。

具体来说,我的脚本需要设置哪些环境变量?@GarrettVW:这取决于您的脚本。您需要查看交互式shell中的环境,并确定需要哪些变量。如果不知道add_device.php是做什么的,就无法判断。我只是注意到您没有告诉我们它是如何出错的。为什么脚本的路径以./usr而不是/usr开头?我的上级告诉我,它需要一个。当安装程序通过crontab运行时,脚本没有运行,这就出错了。您的上级在这个问题上错了。