免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3001 | 回复: 11
打印 上一主题 下一主题

perl在crontab中的结果,出乎意料(已解决,请各位确认) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-28 11:55 |只看该作者 |倒序浏览
perl脚本如下,直接运行此脚本/usr/bin/perl /home/test/get.pl 可以得到正确的结果,如下红色部分:
[root@local test]# tail -2 get.txt   
20091027190001  70               #这是错误的结果,是在crontab中得到的
20091028115203  405             #这是正确的结果,是直接运行perl脚本得到的

而在cron中得到的结果却出乎意料,如上,更多的情况是得到的0.
crontab -l
0 19 * * * /usr/bin/perl /home/test/get.pl

这个问题已经困惑我好久,测试很多次都没找到原因,还请各位帮我看下,谢谢!

#!/usr/bin/perl -w


use strict;
use POSIX qw/strftime/;
my $date = strftime "%Y%m%d%H%M%S",localtime;
my $file = "/home/test/get.txt";
my $n = `/usr/bin/mysql -Daaa -e"select count(*) from aaa where period_diff(current_timestamp,col_date) < 30"`;
if ($n =~ /(\d+)/) {
        my $num = $1;
        open FILE,">> $file" or die "$!";
        print FILE "$datet$numn";
        close FILE;
}



[ 本帖最后由 gaochong 于 2009-11-3 10:07 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-10-28 11:57 |只看该作者

回复 #1 gaochong 的帖子

谢谢各位!

[ 本帖最后由 gaochong 于 2009-10-28 11:59 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-10-28 12:38 |只看该作者
cron或者你自己的shell进程的时区有问题吧

简单google了一下 http://blogs.sun.com/chrisg/entry/mutliple_time_zones_for_cron

论坛徽章:
0
4 [报告]
发表于 2009-10-28 13:09 |只看该作者

回复 #3 dajun 的帖子

谢谢!

但和时区没什么关系的,关键是得到的结果不对。
直接运行脚本的结果是400多,而在cron中得到的结果都很小,或者是0或者是几十。

真不明白为什么。
还请各位指教啊。

论坛徽章:
0
5 [报告]
发表于 2009-10-28 15:22 |只看该作者

回复 #4 gaochong 的帖子

和mysql语句有关系吗?

直接运行这个perl脚本得到的结果是对的.

论坛徽章:
0
6 [报告]
发表于 2009-10-28 15:49 |只看该作者

回复 #5 gaochong 的帖子

请问各位,perl脚本哪里需要修改吗?

论坛徽章:
0
7 [报告]
发表于 2009-10-28 15:52 |只看该作者
我的是这样的,不知道会不会影响
#* * * * 6 /usr/bin/perl /cd/monitor/abc.pl 1>/dev/null 2>/dev/null

论坛徽章:
0
8 [报告]
发表于 2009-10-28 15:53 |只看该作者
原帖由 gaochong 于 2009-10-28 15:49 发表
请问各位,perl脚本哪里需要修改吗?


可以改。用Perl操作数据库不是这样滴。

  1. use DBI;
复制代码

论坛徽章:
0
9 [报告]
发表于 2009-10-28 16:15 |只看该作者

回复 #8 兰花仙子 的帖子

谢谢 仙子,可我只是取一个简单的数值。而且我装半天DBI都不能用。郁闷呢。

论坛徽章:
0
10 [报告]
发表于 2009-10-28 17:01 |只看该作者
原帖由 gaochong 于 2009-10-28 16:15 发表
谢谢 仙子,可我只是取一个简单的数值。而且我装半天DBI都不能用。郁闷呢。


DBI是自带滴。。(一般来说)
你要装DBD::mysql
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP