最近使用kettle任務時,在指令碼開發時,使用到獲取指定日期前後幾天的日期,例如: 獲得變數yesterday=2017-03-05,前兩天的日期字串。
在平常使用的時候,僅使用過獲取當前時間前後幾天的日期,可以使用:stime=`date -d "1 days ago" +%f`
# date -d "1 days ago" +%f
2017-03-04
但是並沒有使用過獲取指定日期前後幾天的日期,檢視date文件,把常用內容列舉下來,方便檢視:
synopsis
date [option]... [+format]
-d,--date=string
顯示指定字串的日期,如:date -d "2017-03-02"
-r,--reference=file
顯示指定檔案最後更新時間,如:date -r /etc/hosts
-s,--set=string
設定時間為指定字串時間
還可以指定時間顯示格式:常見的有:
%s seconds since 1970-01-01 00:00:00 utc
%f full date; same as %y-%m-%d
%y year
%m month
%d day
以上文件中,-d(--date)是我們肯定會用的引數,用來指定某一天的日期,如:
# date -d "2017-03-02"
2023年 03月 02日 星期四 00:00:00 cst
但是需要進行當前時間天數運算,我們會想到時間戳,可以完美的解決加減問題,可以將指定日期轉化成時間戳,然後對時間戳進行格式化,獲得我們想要的日期加減需求,
yesterday=20170203
yesterday_mills=`date -d $ +%s`
before_yesterday=`date -d @$(($yesterday_mills-60*60*24)) +%y%m%d`
echo $before_yesterday
其中@符號,是問度娘知道的,應該是使用時間戳,轉化成日期型別,
在時間戳進行加減的時候,需要使用括號括起來,並且需要使用$()將帶括號的計算表示式括起來,然後以要求時間格式輸出顯示。
shell指令碼 日常巡檢
以下內容僅為提供思路 對於運維來說,每天對所管理的伺服器進行一次以上的巡檢是最基本的工作,當然,天天free df的敲鍵盤很麻煩,這時候最好寫乙個日常巡檢的指令碼,辛苦一天,輕鬆一年 巡檢指令碼有兩種思路,一種是當你想親眼看一看系統狀況的時候,每台伺服器都親自執行一遍這個指令碼 另一種是將所有功能封...
shell指令碼 日誌切割
bin bash 介紹 logcut.sh 簡單的日誌切割指令碼,前3天的切割方便隨時看,前4 10天的進行壓縮,超出的刪除 注意 會將其他帶時間的日誌壓縮後刪除 功能 日誌切割 日誌格式 xx.當前年 月 日.log 壓縮格式 xx.當前年 月 日.tar.gz 適用 centos6 語言 中文 ...
學習shell指令碼日記
linux,shell 2015 02 07 1.計畫任務 corntab e 編寫計畫任務 corntab l檢視計畫任務 corntab r清除所有的計畫任務 如果要清除某一項計畫任務,就是進入計畫任務的編輯頁面,逐個刪除就可以了 2.任務計畫編寫與執行 內容 格式 分 時 日 月 年 命令 r...