温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux环境shell脚本获取时间的常用命令总结

发布时间:2021-09-18 15:44:41 来源:亿速云 阅读:177 作者:chen 栏目:系统运维

本篇内容介绍了“Linux环境shell脚本获取时间的常用命令总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1. 相关概念

Linux的系统时间在shell里是可以直接调用系统变量date的,如:

获取今天时期:`date +%Y%m%d` 或 `date +%F` 或 $(date +%y%m%d) 获取昨天时期:`date -d yesterday +%Y%m%d` 也可以写成`date -d -1day +%Y%m%d` 获取前天日期:`date -d -2day +%Y%m%d` 获取10天前的日期:`date -d -10day +%Y%m%d` 或n天前的: `date -d "n days ago" +%y%m%d` 获取明天日期:`date -d tomorrow +%y%m%d` 获取上个月日期:date -d last-month +%Y%m  获取下个月日期:date -d next-month +%Y%m

至于你需要什么样的日期时间格式,就需要应用相关的时间域参数来实现了:

相关时间域如下:

% H 小时(00..23) % I 小时(01..12) % k 小时(0..23) % l 小时(1..12) % M 分(00..59) % p 显示出AM或PM % r 时间(hh:mm:ss AM或PM),12小时 % s 从1970年1月1日00:00:00到目前经历的秒数 % S 秒(00..59) % T 时间(24小时制)(hh:mm:ss) % X 显示时间的格式(%H:%M:%S) % Z 时区 日期域 % a 星期几的简称( Sun..Sat) % A 星期几的全称( Sunday..Saturday) % b 月的简称(Jan..Dec) % B 月的全称(January..December) % c 日期和时间( Mon Nov 8 14:12:46 CST 1999) % d 一个月的第几天(01..31) % D 日期(mm/dd/yy) % h 和%b选项相同 % j 一年的第几天(001..366) % m 月(01..12) % w 一个星期的第几天(0代表星期天) % W 一年的第几个星期(00..53,星期一为第一天) % x 显示日期的格式(mm/dd/yy) % y 年的最后两个数字( 1999则是99) % Y 年(例如:1970,1996等) %F 输出日期为2019-10-20 这种格式的日期

注意:只有超级用户才有权限使用date命令设置时间,一般用户只能使用date命令显示时间。

2. 获取时间脚本--DateTime.sh

#!/bin/bash echo "===================================================" echo "show linux original format date and time:" echo DateTime: $(date) echo "===================================================" echo "show date time like format: YYYY-MM-DD HH:MM:SS" NOW_DATE_TIME=$(date "+%Y-%m-%d %H:%M:%S") echo $NOW_DATE_TIME echo "==================================================="   echo "show date time like format: YYYYMMDD-HHMMSS" NOW_TIME=$(date "+%Y%m%d-%H%M%S") echo $NOW_TIME echo "==================================================="   echo "show last year:" LAST_YEAR=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 years") echo $LAST_YEAR echo "==================================================="   echo "show next year:" NEXT_YEAR=$(date "+%Y-%m-%d %H:%M:%S" --date="1 years") echo $NEXT_YEAR echo "==================================================="   echo "show last month:" LAST_MONTH=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 months") echo $LAST_MONTH echo "==================================================="   echo "show next month:" NEXT_MONTH=$(date "+%Y-%m-%d %H:%M:%S" --date="1 months") echo $NEXT_MONTH echo "==================================================="   echo "show last day:" LAST_DAY=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 days") echo $LAST_DAY echo "==================================================="   echo "show next day:" NEXT_DAY=$(date "+%Y-%m-%d %H:%M:%S" --date="1 days") echo $NEXT_DAY echo "==================================================="   echo "show last hour:" LAST_HOUR=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 hours") echo $LAST_HOUR echo "==================================================="   echo "show next hour:" NEXT_HOUR=$(date "+%Y-%m-%d %H:%M:%S" --date="1 hours") echo $NEXT_HOUR echo "==================================================="   echo "show last minute:" LAST_MINUTE=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 minutes") echo $LAST_MINUTE echo "==================================================="   echo "show next minute:" NEXT_MINUTE=$(date "+%Y-%m-%d %H:%M:%S" --date="1 minutes") echo $NEXT_MINUTE echo "==================================================="   echo "show last second:" LAST_SECOND=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 seconds") echo $LAST_SECOND echo "==================================================="   echo "show next second:" NEXT_SECOND=$(date "+%Y-%m-%d %H:%M:%S" --date="1 seconds") echo $NEXT_SECOND echo "==================================================="

Linux环境shell脚本获取时间的常用命令总结

运行结果:

Linux环境shell脚本获取时间的常用命令总结

Linux环境shell脚本获取时间的常用命令总结

Linux环境shell脚本获取时间的常用命令总结

3. 练习脚本

在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。

#/bin/bash #filebak bakdir="/root/bak/" filename="`date +%y%m%d`_etc.tar.gz"  if [ ! -x "$bakdir" ];then  mkdir $bakdir fi  cd $bakdir tar cvfz $filename /etc   #使用crontab -e 命令添加定时任务: 0 1 * * * /bin/sh /usr/bin/fileback

“Linux环境shell脚本获取时间的常用命令总结”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI