1、 在Linux上可以用date -d "x days ago" +%Y%m%d命令取得X天以前的日期,但在AIX、HP-UX及WIN的BAT上就没有如此方便的命令了。在网上海找了半天,没发现较好的方法,最后想想何不SHELL结合ORACLE来做。本例是在AIX上试验,但在HP-UX上是一样的道理,应该也可以的,在DOS上的做法可以参考http://blog.youkuaiyun.com/nsj820/archive/2010/06/03/5645768.aspx中使用到的方法。
2、 AIX上SHELL脚本如下:
maintain.sh
3、 中间临时文件内容
ago10.txt
4、 说明:
(1)、Shell中如果牵涉到Crontab调度问题,就写出ORACLE_HOME,ORACLE_SID环境变量,sqlplus命令写上完全路径,以免系统找不到;如果是手工调度,这些是不需要的。
(2)、最N天前日期时用到了awk命令,awk 'NR==4' ago10.txt表示取文件的第四行;根据中间临时文件生成的不同,略做改动。
(3)、最后一步是跟据取出的日期变量,进行系统操作:如生成、删除以日期后缀的文件或目录等。