您好,登錄后才能下訂單哦!
本篇內容介紹了“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 "==================================================="
運行結果:
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腳本獲取時間的常用命令總結”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。