这本来是朋友应聘百度运维工程师的一个shell编程题目,要求一个shell脚本,可以对日志进行拆分,把每天的放到一个文件里,可以加两个参数,保存的文件名和日期。我觉得简单了,就加大了点难度,只用一个命令,日期和文件名字用变量定义,脚本运行后,循环监听产生的日志。代码如下:
 
 
#!/bin/bash
M=`date | awk  '{print $2}'`
if
 [ `date +%d` -lt 10   ]
then D=`date +%d | tr -d 0`
else D=`date +%d`
fi
cat /var/log/messages | grep "$M"  | awk '$2 == '$D'' >> /tmp/saved_log/my.log`date +%Y%m%d`
while [ $D -eq `date +%d` ]
do
 cat /var/log/messages | grep "$M"  | awk '$2 == '$D'' >> /tmp/saved_log/my.log`date +%Y%m%d`
 sed  '/'$D'/p' /var/log/messages  > /var/log/messages
 sleep 10s
done