A. linux下用shell獲取指定文件的最後修改時間並與系統時間比對,如果相差時間超過3分鍾則執行另一個腳本
使用date命令加上合適的時間格式化字元串(+%s),會顯示當前時間(或-d參數指定的時間)與1970-01-01 00:00:00相差的秒數(詳細可以參考date的man手冊)
所以基本想法就是使用date命令分別獲取當前時間與文件修改時間的秒數,然後看這2個秒數之間是否有相差180秒以上。
獲取當前時間比較簡單,直接date +%s就ok了
下面看看如何獲取文件時間
使用stat 命令後面跟一個文件名可以獲取文件的狀態,包括文件修改時間。其中文件修改時間會單獨一行顯示,格式如下:Modify: 2013-02-21 17:58:05.404876407 +0800 (具體的精度可能系統不同略微有些差別,但大致格式是這樣)
所以我們可以stat myfilename | grep Modify來獲取文件的修改時間的信息,然後通過awk分別獲取時間的日期和時間段
stat myfilename | grep Modify | awk '{print $2}' #這句獲取了日期段,即上面例子裡面的2013-02-21
stat myfilename | grep Modify | awk '{split($3,var,".");print var[1]}' #這句獲取了時間段,即上面例子裡面的17:58:05,具體關於awk的使用可以參考awk的使用手冊
那麼現在可以獲取文件修改時間與1970-01-01 00:00:00相差的描述了,就是date -d "$file_date $file_time" +%s
那麼這個時間與當前時間想減的結果與180相比就可以知道是否滿足條件了,滿足條件的話就可以執行相應的命令。
參考代碼如下:
current_datetime=`date +%s`
filedate=`stat tt.txt | grep Modify | awk '{print $2}'`
filetime=`stat tt.txt | grep Modify | awk '{split($3,var,".");print var[1]}'`
file_datetime=`date -d "$filedate $filetime" +%s
timedelta=`expr $current_datetime - $file_datetime`
if [ "$timedelta" -gt "180" ];then
echo "match condition"
fi
B. linux 怎麼用命令查看日期
date命令用於顯示及設置系統的時間或日期,格式為:"date [選項] [+指定的格式]"。
強大的date命令只需鍵入以"+"號開頭的參數即可按照指定格式來輸出系統的時間或日期,這樣日常工作時咱們便可以將打包數據的備份命令與指定格式輸出的時間信息結合到一起,使得咱們可以更加便捷的區分每個文件的備份時間啦,date命令常見的格式如下:
參數 作用
%t 跳格[TAB鍵]
%H 小時(00-23)
%I 小時(01-12)
%M 分鍾(00-59)
%S 秒(00-60)
%X 相當於%H:%M:%S
%Z 顯示時區
%p 顯示本地AM或PM
%A 星期幾 (Sunday-Saturday)
%a 星期幾 (Sun-Sat)
%B 完整月份 (January-December)
%b 縮寫月份 (Jan-Dec)
%d 日(01-31)
%j 一年中的第幾天(001-366)
%m 月份(01-12)
%Y 完整的年份
按照默認的格式查看當前的系統時間:
[root@linuxprobe ~]# date
Mon Aug 24 16:11:23 CST 2016
按照"年-月-日 小時:分鍾:秒"的格式查看當前的系統時間:
[root@linuxprobe ~]# date "+%Y-%m-%d %H:%M:%S"
2016-08-24 16:29:12
設置當前的系統時間為2016年9月1日8點30分:
[root@linuxprobe ~]# date -s "20160901 8:30:00"
Tue Sep 1 08:30:00 CST 2016
再次按照默認的格式查看當前的系統時間:
[root@linuxprobe ~]# date
Tue Sep 1 08:30:01 CST 2016
查看今天是一年中的第幾天:
[root@linuxprobe ~]# date "+%j"
245
reboot命令用於重啟系統,格式為:"reboot"。
重啟計算機這種操作會涉及到對硬體資源的管理許可權,因此默認只能使用root用戶來重啟您的電腦:
[root@linuxprobe ~]# reboot
poweroff命令用於關閉系統,格式為:"poweroff"。
關機命令也同理,默認只有root用戶才可以關閉您的電腦:
[root@linuxprobe ~]# poweroff
如果你對Linux感興趣的話,可以看看http://www.linuxprobe.com/chapter-02.html,非常適合初學者學習。
C. linux中date和date -d -y 有什麼不一樣
date 可以用來顯來示或設定系統自的日期與時間。
命令參數:
-d<字元串>:顯示字元串所指的日期與時間。字元串前後必須加上雙引號;
-s<字元串>:根據字元串來設置日期與時間。字元串前後必須加上雙引號;
-u:顯示GMT;
--help:在線幫助;
--version:顯示版本信息。更多Linux命令請看下圖:
D. linux取當前時間前兩天linux取當前時間
如何在Linux中使用date命令修改日期時間?
方法一:Date命令在Linux中,你可以通過date命令來更改系統的日期和時間:
#date--set=『NEW_DATE』
其中NEW_DATE是諸如「Sun,28Sep201416:21:42」或者「2014-09-2916:21:42」的可讀格式的日期字元串。
日期格式也可以手動指定以獲得更精確的結果:
#date+FORMAT--set=『NEW_DATE』
例如:#date+』%Y%m%d%H%m』--set=『1518』
你也可以用相對的方式地增加或減少一定的天數,周數,月數和秒數,分鍾數,小時數。
你也可以把日期和時間的參數放到一個命令中。
#date--set=『+5minutes』
#date--set=『-2weeks』
#date--set=『+3months』
#date--set=『-3months+2weeks-5minutes』
最後,把硬體時鍾設置為當前系統時鍾:
#hwclock--systohc運行hwclock--systohc的目的是將硬體時鍾同時鍾同步,這可以更正硬體時鍾的系統漂移(即時鍾按照一定的速度走快或走慢)。
另一方面,如果硬體時鍾是正確的,但系統時鍾有誤,可以用下面的命令更正:
#hwclock--hctosys在兩種情況下,hwclock命令都是將兩個時鍾同步。否則,重啟後時間會是錯誤的,因為當電源關閉時硬體時鍾會記憶時間。
然而,這對於虛擬機器並不適用,因為虛擬機器並不能訪問硬體時鍾。
方法二:NTP另一種使系統日期和時間保持精確的方法是使用NTP(網路時間協議)。在Linux上,ntpdate命令通過NTP將系統時鍾和公共NTP伺服器同步。
你可以使用如下命令來安裝ntpdate:在Debian及基於Debian的發行版上:#aptitudeinstallntpdate在基於RetHat的發行版上:#yuminstallntpdate使用NTP同步系統時鍾:
#ntpdate-u《NTP伺服器名或IP》
#hwclock--systohc除了一次性使用ntpdate來同步時鍾,你也可以使用NTP守護進程(ntpd),它會始終在後台運行,不斷地通過NTP來調整系統時鍾。
如何查看Linux系統安裝的時間?
查看bin,daemon,adm等這些帳號的建立時間,這些帳號是在系統安裝的時候創建的,所以這些帳號的創建時間基本上就是Linux系統的安裝時間
1、查看bin帳號密碼的時間
2、查看daemon帳號密碼的時間
3、查看adm帳號密碼的時間
通過已上用戶查看到我這台機器是於2014年10月29日安裝的。
如何查詢linux伺服器當前時間?
Linux系統顯示時間與日期的命令是date,直接輸入date命令將會顯示時間日期,也可以輸入date+%H:%M只顯示時間。
linuxdate格式化時間和日期?
Linux的時間內部是timestemp。這個時間輸出是根據當前時區的設置進行輸出,當前時區的設置文件是/etc/localtime(如果我沒記錯)。
就算你沒設置時區,那麼系統依然會有一個默認的時區進行輸出。
系統默認有一個localtime,好像格式設置是英國表示法。時區沒有,應該是local時間而不是GMT。一個正確使用的linux專用機器,計算機時間一般是保存為格林威治標准時間,系統在輸出時會根據localtime進行轉換輸出。
自定義默認日期應該是在輸出時間時設置輸出格式信息,而不是強行的去設置整個系統的環境。
因為這個設置只對考慮時區設置的輸出格式的一些程序管用,在系統內部,依然是通用的timestemp存儲。
而且很多程序有自己獨立的設置,尤其是在某些程序裡面,他不同的情況下會進行不同的輸出。
比如mysql,非timestemp時間的存儲用的是ISO標准格式,也就是YYYY-MM-DDHH:mm:ss的樣子(如果還是我沒記錯),如果你需要格式要求,需要自己查詢後或者查詢時進行格式轉換。
你正在一個錯誤的方向進行一個錯誤的折騰。
linux如何修改鎖屏時間?
一般linux界面左上角有System→Preferences→ScreenSaver點開拖動裡面的時間條就可以設置屏幕的鎖屏時間了
E. Linux如何得到上月月末日期
1、上個月來末
date -d `date +%y%m01`"-1 day" +%d
2、往前倒源
date -d -`date +%d`day +%d
3、條件
if [`date +%d -d tomorrow` == 01 ];
4、上個月
date -d last-month
date -d -1month
5、下個月
date -d next-month
date -d 1month
6、本月初
date -d 1`date +%B`
上個月初
date -d 1`date -d last-month +%B`
指定月份
day -d 1May