shell腳本如何獲取當前時間


在shell腳本里常常需要獲取系統時間來處理某項操作,linux的系統時間在shell里是可以直接調用系統變量的如: 

獲取今天時期:`date +%Y%m%d` 或 `date +%F` 或 $(date +%y%m%d)

命令輸出結果如下:

  1. [root@pc1223]# date +%Y%m%d 
  2. 20120727 
  3. [root@pc1223]# date +%F 
  4. 2012-07-27 
  5. [root@pc1223]# date +%y%m%d 
  6. 120727 


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

  1. [root@pc1223]# date -d yesterday +%Y%m%d 
  2. 20120726 
  3. [root@pc1223]# date -d yesterday +%F 
  4. 2012-07-26 
  5. [root@pc1223]# date -d -1day +%y%m%d 
  6. 120726 
  7. [root@pc1223]# date -d -1day +%Y%m%d 
  8. 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 從1970年1月1日00:00:00到目前經歷的秒數 
% S 秒(00..59) 
% T 時間(24小時制)(hh:mm:ss) 
% X 顯示時間的格式(XX時XX分XX秒) 
% 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目錄里,且文件名為如下形式yymmdd_etc,yy為年,mm為月,dd為日。Shell程序fileback存放在/usr/bin目錄下。

  1. #!/bin/bash 
  2. #filebak 
  3. #file executable: chmod 755 filebak 
  4. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 
  5. export PATH 
  6. bakdir="/root/bak/" 
  7. filename="`date +%y%m%d`_etc.tar.gz" 
  8. if [ ! -x "$bakdir" ];then 
  9. mkdir $bakdir 
  10. fi 
  11. cd $bakdir 
  12. tar cvfz $filename /etc
  13.  

 或使用crontab -e 命令添加定時任務:
0 1 * * * /bin/sh /usr/bin/fileback

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM