linux获取前一天时间的方法

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