日期:2014-05-16  浏览次数:20556 次

怎么找出星期六日的登录日志?
大家好:
  请问怎么找出8月份在星期六、日登录系统的日志。
8月份的登录日志如下图,但我用如下命令却找不出星期六、日的登录日志:
who /var/log/wtmp | grep "2012-08" | awk -v str=`date -d "$3" "+%a"` '{if(str="六" || str="日") print $0}'
这样不行,出错。
日志少的话,可以人工对照,如果多的话,就麻烦了。
请问应怎么写呢?谢谢!



------解决方案--------------------
你首先需要把周日或者周六转换成一个日期,因为你的日志记录是没有星期的。怎么过滤都是没有结果的。
------解决方案--------------------
关键在这里:awk -v str=`date -d "$3" "+%a"`
你这个 $3 在 awk 的命令外面,属于 shell 命令,所以这时候 $3 没有值。你要把这个获取日期的值放在后面用,这里是一个例子,你可以和你自己的语句对比看看:
C# code
who /var/log/wtmp | grep "2012-08" | awk '{cmd="date -d "$3" +%a"; cmd | getline week; print $0, week}'