+ -
当前位置:首页 → 问答吧 → ?目录是存在, 但是却显示No such file or directory

?目录是存在, 但是却显示No such file or directory

时间:2010-08-16

来源:互联网

脚本如下:
#!/usr/bin/perl -w
use strict;

open (DD,"date +%Y-%m |")|| die "can not exec shell command";
my $datedir=<DD>;
my @dt=split /-/, $datedir;

my $path="/usr/local/tomcat/webapps/WEB-INF/work/log/$dt[0]/$dt[1]";

chdir "$path" || die "can not change : $!";
close DD;

open (DALOG, "date +%Y%m%d |") || die "can not exec shell command";
my $datelog=<DALOG>;
close DALOG;

my $line=0;

if (-e "session\.$datelog\.log") {
    open ALTER,"session\.$datelog\.log";
    while(<ALTER>){
    chomp;
    if (!(/^,\s*(487|-1|0),$/)) {
         ++$line;
           print $_;
     }

     if ($line <=100) {
       print "OK -- now alter count $line";
     }elsif($line >100 && $line<=150) {
       print "Warning --now alter count $line";
     }else{
      print "Critical --now  alter count $line";
     }
  }
}

执行时,错误提示: can not change : No such file or directory at ./check_session.pl line 10, <DD> line 1.

作者: zhmysh   发布时间: 2010-08-16

相对路径问题吧。。用full path吧。

作者: 兰花仙子   发布时间: 2010-08-16

回复 兰花仙子


    chdir "$path"  就是用的绝对路径,不是相对路径

作者: zhmysh   发布时间: 2010-08-16

打印@dt看看结果

作者: yybmsrs   发布时间: 2010-08-16



QUOTE:
回复  兰花仙子


    chdir "$path"  就是用的绝对路径,不是相对路径
zhmysh 发表于 2010-08-16 18:29




   在这个后面加一句print $path看看咯:
my $path="/usr/local/tomcat/webapps/WEB-INF/work/log/$dt[0]/$dt[1]";

作者: 兰花仙子   发布时间: 2010-08-16

回复 兰花仙子


我加过  print $path ,结果是一样的错误提示:
[root@database libexec]# ./check_session.pl
/usr/local/tomcat/webapps/WEB-INF/work/log/2010/08
can not change : No such file or directory at ./check_session.pl line 10, <DD> line 1.

作者: zhmysh   发布时间: 2010-08-16



QUOTE:
回复  兰花仙子


我加过  print $path ,结果是一样的错误提示:
[root@database libexec]# ./check ...
zhmysh 发表于 2010-08-16 18:41




    有没有这个目录啊:
/usr/local/tomcat/webapps/WEB-INF/work/log/2010/08

作者: 兰花仙子   发布时间: 2010-08-16

应该是chomp(my $datedir=<DD>);

作者: Mr-Summer   发布时间: 2010-08-16