问题描述:
前两天有一个需求需要连接到别人的主机上写shell脚本每天统计前一天生成文件的数量,使用 DATE=date -d -1days +%Y%m%d
居然报错,原来是因为unix中date命令 没有-d选项。
临时方案:
在脚本开始位置 DATE=date +%Y%m%d
查当前时间 然后再 sleep 300 睡眠5分钟,再把脚本crontab定时到23:58分,这样也算查询统计前一天的文件了。
最终方案:
后来得空问了同事查了资料才知道 unix中查询前一天的日期的操作方式,如下:
#unix中查询前一天的日期为:
echo `TZ=aaa16 date +%Y%m%d\ %H:%M:%S`
#将时间复制给DATE变量
DATE=`TZ=aaa16 date +%Y%m%d`
因为我们的时区为东八区 所以是16 date 以此类推查询前天的日期为16+24=40:
echo `TZ=aaa40 date +%Y%m%d\ %H:%M:%S`