Unix入門經典之在指定時間執行程式 11章

2021-10-02 14:56:39 字數 2080 閱讀 6853

在指定時間執行程式的前提,是要倆姐計算機種時間是怎麼來的。

系統時鐘計算機中有兩個時鐘:硬體時鐘與系統時鐘。

硬體時鐘:由鈕扣電池供電,記錄的是2023年1月1日開始截至至今的秒數。以世界標準時間(utc, universal time)或者說是格林威治時間(gmt, greenwich mean time)為止。由於不記錄年份,所以不存在y2k問題,但是對於32位系統,會存在2038問題,也就是使用乙個32位數字來記錄描述,到達2023年時,該數字會不夠用。

系統時鐘:使用者實際看到和使用的時鐘,與系統或者使用者設定的時區有關,又被稱為核心時鐘或者軟體時鐘

cst可以理解為美國、澳大利亞、古巴、中國的標準時間都可,在當前語境下,為中國標準時間china standard time ut+8:00。

該版本書為:date ccyymmddhhmm.ss,但對於我學習所使用的ubuntu18來講,會提示錯誤。

從上面可以看出對於具體使用的linux版本協議為date mmddhhmmccyy.ss

同樣,首先檢視硬體時鐘(其實當前還不太理解,這裡的輸出和硬體有什麼關係)

同步的協議,預設是同步到utc時間,可以嘗試同步到本地硬體時間。 可以看到有乙個8個小時的時差,已經體現出來了。

ntpdate可以從乙個基於網路的時間伺服器來初始化系統時針。該伺服器可以是區域網內部,伺服器**商以及公開訪問的ntp伺服器。伺服器使用信任級別(trust level)來確定權威時間的伺服器。數字越小,可信度越高,最高為1,而且考慮到傳輸中的延遲。20*

***zteng

cp -r ~/documents ~/backups

第20分鐘

每小時每天

每月每週

使用者名稱指令

一些更加複雜的時間書寫語法如下:比如

20 0,2,4,6,8,10 1-5 1-12/2 * zteng cp -r ~/documents ~/backups

上面寫法的意思是在每個兩個月裡面的第1-5天裡面的0,2,4,6,8,10中的第20分鐘都執行一下複製的操作。

如果想將cron的輸出集中收集起來,可以加上重定向符。

20 0,2,4,6,8,10 1-5 1-12/2 * zteng cp -r ~/documents ~/backups >> log.file

2)注釋應該傳達一些重要的資訊,包括:

1、新增/修改記錄項的使用者的名字。

2、如果出現問題,應該如何聯絡該使用者。

3、新增或修改記錄項的日期。

4、記錄項(或修改)的目的,指定它所作用的檔案。

at命令適用於在某一特定的時間點,僅執行一次的操作。當前時間為21:13,在21:15時,希望系統能自動執行一次複製操作。ctrl + d為結束符。

atq可以檢視當前存在的at job

atrm 1可以刪除對應id的job。

時間不止上述的21:15的形式有效,下面的形式皆有效。

at 5pm

at 5:15pm

at noonat teatime (下午茶時間,一般指4點)

at now + 5 minutes

at 4pm + 3 days (指在3天後的下午4點)

at 1 weeks控制

/etc/at.deny (若存在但為空,則全放開,慢慢新增黑名單) 這種方式時預設情況。

/etc/at.allow(若存在但為空,則慢慢申請,慢慢新增白名單)

linux命令 在某指定時間執行命令 at

at 在某指定時間執行命令。at options time adte increment atqatrmjob list batch options time at 和 batch 都是在某指定時間執行命令。它們都接受標準輸入和檔案輸入。atq 顯示at佇列中的作業列表。atrm 將取消掛起 at ...

在spring中指定時間執行程式

讀bean中加入task任務 xmlns task xsi schemalocation 中加入 這類似的spring小功能應該放到最後,因為需要為spring準備上下文或者是例項化物件後才能操作其他元件任務。package task component taskfortest public cla...

crontab固定時間執行用法

cron是乙個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。1 直接用crontab命令編輯 cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些引數與說明 crontab u 設定某個使用者的cron服務,一般root使用者在執行這個命令的時候需要此引數 ...