在ubuntu上設定時間和日期的shell腳本

在ubuntu上設定時間和日期的shell腳本

我的桌上型電腦 CMOS 電池無法運作,因此我必須在每次電腦啟動時設定時間和日期。我想建立一個 shell 腳本來在每次啟動完成後自動設定電腦上的日期和時間。現有的選項包括: 1. 購買 CMOS 電池:- 我正在考慮這一點,但目前 shell 腳本就可以了。 2. 使用 NTP 與網際網路伺服器同步時間和日期:- 我未連接到網際網路。

答案1

如果系統無法知道時間,您唯一能做的就是嘗試在關機時保存日期時間並在重新啟動時重新加載(如您所建議的那樣)。

警告:以下指令應該適用於 SystemV 類型的 init 系統:我還沒有測試過它(我現在在 Windows 機器上),所以你必須測試它們並謹慎對待它們 --- 可能會有拼寫錯誤。

警告2我覺得暴發戶(init 腳本的現代 Ubuntu 實現)尊重它,但是您的里程可能會有所不同:需要測試和實驗。這裡如果你想以更奇特的方式做到這一點。

若要儲存關閉/重新啟動時的日期,您可以將腳本新增至/etc/rc0.d/etc/rc6.d目錄(第一個用於關閉,後者用於重新啟動)。正常的方法是建立腳本/etc/init.d,然後從那裡連結腳本。

以下所有命令必須以 root 身分發出。使用您喜歡的方法...

/etc/init.d/savedatetime因此,您可以使用您最喜歡的編輯器和內容來建立腳本:

#!/bin/sh
date +%m%d%H%M%Y.%S > /root/lastseendate.txt

使其可執行,然後連結它(date格式是 date 能夠讀回的格式,請參閱man date)。

chmod +x /etc/init.d/savedatetime
cd /etc/rc0.d/
ln -s ../init.d/savedatetime K99savedatetime
cd /etc/rc6.d/
ln -s ../init.d/savedatetime K99savedatetime 

應該K99使該腳本成為關機或重新啟動之前執行的最後一個腳本。如果透過重新啟動維持時鐘,並且您只想在關機時執行此操作,則只需跳過最後兩個命令即可。

然後在重新啟動時您想要讀取該檔案。有很多地方可以放,最簡單的是/etc/rc.local

編輯它並將其放在開頭附近:

[ -f  /root/lastseendate.txt ] && date $(cat /root/lastseendate.txt) 
rm -f /root/lastseendate.txt

……應該就是這樣。快樂黑客!

相關內容