?
date -d '-1 day' +%y-%m-%d
?工作中遇到这样的一个问题:
?
?? 写过一个脚本记录每天的nmap扫描结果,名称都是+%y-%m-%d.log格式的文件名,今天的结果会跟昨天的对比,对比结果有不同就会发送报警!
?? 然后我想增加一个功能,在发送报警的同时,将该服务器的端口报错历史也报出来,效果如下:
?? 2014-03-03 07:55:14??? localhsot ?? [192.168.1.1]??? 外网端口: 80 状态已关闭 历史:三天前该端口开放
#!bin/bash
hostn=`hostname`
for((m=1;m<=5;m++));
do
datetime=`date -d "-$m day" +%y-%m-%d`
if [ ! -f ${datetime}.log ];then
break
fi
message=`cat "${datetime}.log" | grep ${hostn}`
if [ -z "$message" ];then
continue
else
echo "历史:$message"
fi
done
所以使用 date -d "-${m} day" +%y-%m-%d 可以获得过去m天的时间
更多相关脚本参考:http://www.521478.com
