这本来是朋友应聘百度运维工程师的一个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
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
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
done
本文转自 fenghao.cn 51CTO博客,原文链接:http://blog.51cto.com/linuxguest/167749,如需转载请自行联系原作者