免费注册 查看新帖 |

Chinaunix

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

perl脚本怎么添加到crontab中并且运行正常 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-13 17:28 |只看该作者 |倒序浏览
我有个perl脚本,手动运行时能够正常运行,但是,放在crontab中就不能够正常运行了,请高手帮忙解决一下。很急,谢谢!

#!/usr/bin/perl
use Expect;
use Date::Simple ('date', 'today');

my $timeout=3;
my $delay=5;
##log name##
my $httplog='http-web';
my $rglog='rg';
my $iolog='io';

##remote log dir##
my @path=qw( /opt/oc4j903/j2ee/home/gis/WEB-INF/applications/httplog /opt/oc4j903/j2ee/home/gis/WEB-INF/applications/iolog /opt/oc4j903/j2ee/home/gis/WEB-INF/applications/rglog );

##local log dir##
my @lpath=qw(/opt/gislog_backup/39/ /opt/gislog_backup/40/);

##server IP##
my @ip=qw( 192.168.154.39 192.168.154.40 );

##local log dir##
#my @lpath=qw(/opt/gislog_backup/39/ /opt/gislog_backup/40/);

##1 day ago##
my $day = today() - 1;
##ana tmp_dir##
my $ana_tmp="/opt/gislog_backup/tmp/";

##delete file in tmp_dir##
#unlink glob "/opt/gislog_backup/tmp/http/*";
#unlink glob "/opt/gislog_backup/tmp/io/*";
#unlink glob "/opt/gislog_backup/tmp/rg/*";

############scp log file from SERVER#########
foreach my $ip (@ip){
    if("$ip" eq "192.168.154.39"{
        local $pass="M1A\@P3";
        foreach my $paths (@path){
              my $tmp=(split(/\//,"$paths")[8];
              print "$ip#############$tmp\n";
              if($tmp eq "httplog"{
                  print "$ip###########$tmp#######httplog\n";
                  &remote_expect($ip,$paths,$httplog,$day,$lpath[0]);
              }elsif($tmp eq "iolog"{
                  print "$ip###########$tmp#######iolog\n";
                  &remote_expect($ip,$paths,$iolog,$day,$lpath[0]);
             }elsif($tmp eq "rglog"{
                  print "$ip###########$tmp#######rglog\n";
                  &remote_expect($ip,$paths,$rglog,$day,$lpath[0]);
             }

         }
    }
    if("$ip" eq "192.168.154.40"{
        local $pass="M1A\@P3";
        foreach my $paths (@path){
              my $tmp=(split(/\//,"$paths")[8];
              if($tmp eq "httplog"{
                          print "$ip###########$tmp#######httplog\n";
                  &remote_expect($ip,$paths,$httplog,$day,$lpath[1]);
              }elsif($tmp eq "iolog"{
                  print "$ip###########$tmp#######iolog\n";                     
                  &remote_expect($ip,$paths,$iolog,$day,$lpath[1]);
             }elsif($tmp eq "rglog"{
                  print "$ip###########$tmp#######rglog\n";
                          &remote_expect($ip,$paths,$rglog,$day,$lpath[1]);
             }
         }
     }

}
##remode copy sub##
sub remote_expect{
     my ($t_ip,$t_paths,$t_httplog,$t_day,$t_lpath)=@_;       
     my $exp = Expect->spawn("scp root\@$t_ip{t_paths}/${t_httplog}-access.${t_day}.log $t_lpath") or die "Can't spawn $cmd\n";
     $exp->expect($timeout,'-re','root*[Pp]assword:');
     $exp->send_slow($delay, "$pass\n");
     $exp->interact();
     $exp->hard_close();
}

########unite file############

##httplog##
open HTTP39_FILE, "$lpath[0]${httplog}-access.${day}.log";
open HTTP_FILE,">>/opt/gislog_backup/tmp/http/${httplog}-access.${day}.log";

while (<HTTP39_FILE>) {
    print HTTP_FILE $_;
}
close(HTTP39_FILE);

open HTTP40_FILE,"$lpath[1]${httplog}-access.${day}.log";
while (<HTTP40_FILE>) {
    print HTTP_FILE $_;
}
close(HTTP40_FILE);
close(HTTP_FILE);

##iolog##
open IO39_FILE, "$lpath[0]${iolog}-access.${day}.log";
open IO_FILE,">>/opt/gislog_backup/tmp/io/${iolog}-access.${day}.log";
while (<IO39_FILE>) {
    print IO_FILE $_;
}
close(IO39_FILE);
open IO40_FILE,"$lpath[1]${iolog}-access.${day}.log";
while (<IO40_FILE>) {
    print IO_FILE $_;
}
close(IO40_FILE);
close(IO_FILE);

##rglog##
open RG39_FILE,"$lpath[0]${rglog}-access.${day}.log";
open RG_FILE,">>/opt/gislog_backup/tmp/rg/${rglog}-access.${day}.log";
while (<RG39_FILE>) {
    print RG_FILE $_;
}
close(RG39_FILE);
open RG40_FILE,"$lpath[1]${rglog}-access.${day}.log";
while (<RG40_FILE>) {
    print RG_FILE $_;
}
close(RG40_FILE);
close(RG_FILE);


crontab -l的内容
*/5 * * * * /usr/bin/perl /path/to/filename.pl


联系方式:houyingjun2003@hotmail.com

论坛徽章:
0
2 [报告]
发表于 2009-04-13 17:36 |只看该作者

脚本有问题

论坛徽章:
0
3 [报告]
发表于 2009-04-15 10:45 |只看该作者
望大侠指点,现在很急
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP