linux date获取时间 使用变量获得前一个小时

linux date获取时间 使用变量获得前一个小时,第1张

[root@iZ259r7h4pfZ ~]# TIME=`date +'%Y-%m-%d %H:%M:00'`

[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/bash

TIME=$(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语言


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7584503.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-07
下一篇2023-04-07

发表评论

登录后才能评论

评论列表(0条)

    保存