
[root@iZ259r7h4pfZ ~]# echo $TIME
2017-12-26 13:50:00
[root@iZ259r7h4pfZ ~]# TIME2=`date -d "-1 hour" +'hour %Y-%m-%d %H:%M:00' `
[root@iZ259r7h4pfZ ~]# echo $TIME2
hour 2017-12-26 12:51:00
你的变量定义格式有误,变量调用系统命令时的格式:
TIME=$(date -d'1 day ago' "+%Y%m%d")或
TIME=`date -d'1 day ago' "+%Y%m%d"`
#推荐使用第一种方式,看起来比较直观也容易避免一些问题
完整的脚本如下:
在/root/目录下创建名为 tar_log.sh的sh文件
#!/bin/bashTIME=$(date -d'1 day ago' "+%Y%m%d")
logdir="#日志存放位置"
cd $logdir/
tar -zcf ip-${TIME}.tar.gz ip-${TIME}.txt
crontab 设置如下:
00 00 * * * /bin/bash /root/tar_log.sh获得当天的日期:date +%Y%m%d,输出: 20181130。
需要使用今天之前或者往后的日期,这时可以使用date的 -d参数:
1、获取明天的日期:date -d next-day +%Y%m%d。
2、获取昨天的日期:date -d last-day +%Y%m%d。
3、获取上个月的年和月:date -d last-month +%Y%m。
4、获取下个月的年和月:date -d next-month +%Y%m。
5、获取明年的年份:date -d next-year +%Y。
扩展资料
linux的系统时间在shell里是可以直接调用系统变量的如:
获取今天时期:`date +%Y%m%d` 或 `date +%F` 或 $(date +%y%m%d)
命令输出结果如下:
[root@centi-C sh]# date +%Y%m%d
20120727
[root@centi-C sh]# date +%F
2012-07-27
[root@centi-C sh]# date +%y%m%d
120727
参考资料来源:百度百科 - linux
百度百科 - SHELL语言
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)