?
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