Perl 디 렉 터 리 와 Linux 명령 으로 로 그 를 분석 하 는 코드 인 스 턴 스 공유
#! /usr/bin/perl -w
$path = '/root/Documents'; #
$dir = "$path/images"; #
$log_file = "$path/access_201209.log"; # nginx 0903~0907, filesize: 5.4G
$result_file = 'result.f'; #
if(!open $output, ">>$result_file") { #
die " Open file failed: $!";
}
&find_dir($dir);
sub find_dir() {
my $base_dir = $_[0]; # $_[0] ( )
if( !opendir(DIR,"$base_dir") ) {
warn "open dir failed: $!
";
}
my @father_dir = readdir(DIR); #
closedir(DIR);
$base_dir =~ s/\/$//; # /
foreach $sub_dir (@father_dir) {
if($sub_dir =~ /^\./) { # . ..
next;
}
if(-d "$base_dir/$sub_dir") { #
&find_dir("$base_dir/$sub_dir"); # ,
}elsif (-f "$base_dir/$sub_dir") { # ....
# , theme_skin/blue/images
my $this_file = " $base_dir/$sub_dir";
$this_file =~ s/$path//; # /root/Documents
# Linux , [$log_file ] [$this_file ]
my $result = `grep -c "$this_file" $log_file`; # $this_file ,
chomp $result ; # Linux ,
print $output "$this_file : $result
"; # $output
# , ,
unlink "$base_dir/$sub_dir";
}
}
}
print "
Finished
";
# result.f , /images/ images/
# Linux 5 0 ,
# 0 , 0
# 1 :
# gawk -F ':' '$2 ~ / 0 / {print $1}' result.f | xargs rm -rf
# 2 : ( 1)
# grep ' 0 ' result.f | gawk -F ':' '{print $1}' | xargs rm -rf
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
cowsay로 현장 고양이에 요시! 되고 싶은 건업무 중에도 현장 고양이에 요시! 하고 싶었기 때문에, cowsay 를 사용해 어떻게든 해 보았습니다. cowsay는 말할 것도없이 오징어 한 서버에 적합한 매혹적인 도구입니다. 살벌한 우리 마음에 일복의 청량을 줍...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.