我使用 perl 脚本在 rrd 中创建了我的系统图。当我手动运行脚本时,它会更新图表。另一方面,cron 在日志中显示作业已执行,但不更新图表.. 有什么帮助吗?
我已经设置了 apache2 目录权限 root:apache 与 770
发行版:CentOs 5.5。
定时配置:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/user/graphs/script-rrd.pl > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
我已经检查了 /var/log/cron 它表明上面的脚本已经被执行,但它没有更新 /var/html/www/graphs.png 中的图形
此问题的解决:
cp -rf /opt/rrdtool-1.4.4/lib/perl/5.8.8/i386-linux-thread-multi/* /usr/lib/perl/site_perl
在 /usr/lib/perl5/site_perl 中复制 rrd 内容后问题已解决。
我已经创建了 PERL5LIB。创建 PERL5LIB 后,我能够手动运行脚本,但它不是由 cron 运行的,所以这就是为什么我必须复制上述文件。
SELINUX 如下: SELINUX=disabled SELINUXTYPE=targeted SETLOCALDEFS=0
您的 cron 行中有一个明显的错误:您将错误输出重定向到/dev/null. 不要这样做,并查看您的邮件,看看出了什么问题。
cron 作业的一个常见问题是它们的环境非常有限:您.profile的未读。您可能需要为要运行的脚本定义一些环境变量。
补充:你做了:
cp -rf /opt/rrdtool-1.4.4/lib/perl/5.8.8/i386-linux-thread-multi/* /usr/lib/perl/site_perl
Run Code Online (Sandbox Code Playgroud)
馊主意!您不应该将自己的文件放入/usr(外部/usr/local)。该区域保留给包管理器。当然,现在很容易,但是明天你会遇到麻烦(例如升级 rrdtool 时),然后就很难调试了。
相反,按照人们的建议去做,并在您的脚本(或源代码~/.profile)中定义必要的环境变量;你需要PERL5LIB(也许还有其他人)。
| 归档时间: |
|
| 查看次数: |
2448 次 |
| 最近记录: |