Hello, I have a script,which run well at most time.This day I use it to analyse the files of 1.7G,it become very slow and can't get executed continuely anymore.When I run 'strace -p xxxx' (here xxxx is this script's PID),there is no output,it seems died.
Here is my script: #!/usr/bin/perl use strict; use warnings; my $date=`date +%y%m%d`; chomp $date; my $dir="/home/datas/loginIP"; # here stored about 140 files,which are totally 1.7G. my @files= glob "$date/*.ip"; my (%low, %total); foreach my $file (@files) { open (FILE,$file) or die "$!"; while(<FILE>) { next if /^192\.168\./; next unless /^(\d+\.\d+\.\d+\.)(\d+)/; $low{$1}{$2}=1 if $2 < 128; $total{$1}{$2}=1; } close FILE; } open (RESULT,">","dynamic.$date.re") or die "$!"; foreach (sort { scalar keys %{$total{$b}} <=> scalar keys %{$total{$a}} } keys %total) { my $low = scalar keys %{$low{$_}}; my $high = (scalar keys %{$total{$_}}) - $low; if ($low > 64 and $high > 64) { printf RESULT "%-25s%-20s\n", $_."0", $_."255"; }elsif ($low > 64 and $high <= 64) { printf RESULT "%-25s%-20s\n", $_."0", $_."127"; }elsif ($low <= 64 and $high > 64) { printf RESULT "%-25s%-20s\n", $_."128", $_."255"; } } close RESULT; ---- The files handled by the script are looked as: 211.139.227.247:3088 220.181.31.245:1134 220.181.31.247:1126 220.181.31.248:1120 220.181.31.246:1071 220.178.47.2:977 221.11.26.219:961 221.11.26.220:934 210.31.76.252:911 ... ---- Why this happen and how to resolve it? Any suggestion is welcome.Thanks.