从 $log 读取开关机记录
发表于 : 2013-09-20 20:28
代码: 全选
2013-09-20 20:25:08 五 ~
● cat log-on.pl
#!/usr/bin/perl
$log='/var/log/kern.log';
$re='proc\b';
open IN,$log; @_=grep /$re/,<IN>; close IN;
if(@_<3){
$log.=".1";
open IN,$log; @_=grep /$re/,<IN>; close IN;
}
print "从 $log 读取开关机记录:\n";
#---------------------------------------
$lastday="";
for(@_){
/(\w+\s+\w+)\s(\S+)/;
$day=$1; $time=$2;
$statu=/start/;
if($day ne $lastday){
$lastday=$day;
$localday=`date -d "$day"`; $localday=~s/\s+\d\d\:.*//; chomp $localday;
print "\n=====$localday=====\n";
}
if(/start/){print "$time -> ";}else{print "$time.\n";}
}
print "\n";
2013-09-20 20:27:46 五 ~
● ./log-on.pl
从 /var/log/kern.log.1 读取开关机记录:
=====2013年 09月 08日 星期日=====
21:40:22.
=====2013年 09月 10日 星期二=====
17:32:23 -> 19:43:19.
20:12:26 -> 21:53:36 -> 23:23:23.
=====2013年 09月 15日 星期日=====
18:36:42 -> 18:43:28.
=====2013年 09月 17日 星期二=====
09:28:55 -> 10:46:52.
=====2013年 09月 20日 星期五=====
14:37:29 -> 14:53:51.
15:23:26 -> 17:10:46.
17:32:44 ->