shell指令碼如何獲取當前時間

2021-08-11 21:28:27 字數 2375 閱讀 9641

在shell指令碼裡常常需要獲取系統時間來處理某項操作,今天系統的學習了一下如何獲取系統時間。記錄如下:

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 

獲取昨天時期:`date -d yesterday +%y%m%d` 也可以寫成`date -d -1day +%y%m%d`

[root@centi-c sh]# date -d yesterday +%y%m%d 

20120726 

[root@centi-c sh]# date -d yesterday +%f 

2012-07-26 

[root@centi-c sh]# date -d -1day +%y%m%d 

120726 

[root@centi-c sh]# date -d -1day +%y%m%d 

20120726 

獲取前天日期:`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` 

注意以上中間有空格 

至於你需要什麼樣的日期時間格式,就需要應用相關的時間域引數來實現咯

相關時間域如下: 

% 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 從2023年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等) 

注意:只有超級使用者才有許可權使用date命令設定時間,一般使用者只能使用date命令顯示時間。

新增乙個練習指令碼,功能:

在每月第一天備份並壓縮/etc目錄的所有內容,存放在/root/bak目錄裡,且檔名為如下形式yymmd

d_etc,yy為年,mm為月,dd為日。shell程式fileback存放在/usr/bin目錄下。

#/bin/bash 

#filebak 

#file executable: chmod 755 filebak 

path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 

export path 

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

shell獲取當前系統時間

在shell指令碼裡常常需要獲取系統時間來處理某項操作,今天系統的學習了一下如何獲取系統時間。記錄如下 linux的系統時間在shell裡是可以直接呼叫系統變數的如 獲取今天時期 date y m d 或 date f 或 date y m d 命令輸出結果如下 date y m d 2012072...

Shell 實現獲取當前時間

shell 實現獲取當前時間,並進行格式轉換的方法 1 原格式輸出 2018年 09月 30日 星期日 15 55 15 cst time1 date echo time1 2 時間串輸出 1 bin bash 2 time2 date y m d h m s 3 echo time2 3 2018...

shell指令碼實現取當前時間

shell 實現獲取當前時間,並進行格式轉換的方法 1 原格式輸出 2018年 09月 30日 星期日 15 55 15 cst 1 time1 date 2 echo time12 時間串輸出 20180930155515 1 bin bash 2 time2 date y m d h m s 3...