shell學習之定時執行作業

2021-08-28 17:17:08 字數 1533 閱讀 8312

當你開始使用指令碼時,可能會想要在某個預設時間執行指令碼。 linux系統提供了多個在預選時間執行指令碼的方法:at命令和cron表,來安排指令碼的執行時間和頻率。

一.用at命令來計畫執行作業

at命令允許指定linux系統何時執行指令碼。at命令會將作業提交到佇列中,指定shell何時運 行該作業。at的守護程序會以後臺模式執行,檢查作業佇列來執行作業。

at命令的基本格式非常簡單:at [-f filename] time

預設情況下,at命令會將stdin的輸入放到佇列中。你可以用-f引數來指定用於讀取命令(指令碼檔案)的檔名。

time引數指定了linux系統何時執行該作業。如果你指定的時間已經錯過,at命令會在第二天的那個時間執行指定的作業。

在如何指定時間這個問題上,你可以非常靈活。at命令能識別多種不同的時間格式。

輸出:atq命令可以檢視系統中有哪些作業在等待,作業列表中顯示了作業號、系統執行該作業的日期和時間及其所在的作業佇列。

一旦知道了哪些作業在作業佇列中等待,就能用atrm命令來刪除等待中的作業。

只要指定想要刪除的作業號就行了。只能刪除你提交的作業,不能刪除其他人的。

二. cron時間表

linux系統使用cron程式來安排要定期執行的作業。cron程式會在後台執行並檢查乙個特殊的 表(被稱作cron時間表),以獲知已安排執行的作業。

cron時間表採用一種特別的格式來指定作業何時執行。

其格式如下:min hour dayofmonth month dayofweek command

cron時間表允許你用特定值、取值範圍(比如1~5)或者是萬用字元(星號)來指定條目

在crontest.cron中編寫以下:

加入定時任務中:crontab /root/shellleaner/crontest.cron 

每個系統使用者(包括root使用者)都可以用自己的cron時間表來執行安排好的任務。linux提供 了crontab命令來處理cron時間表。要列出已有的cron時間表,可以用-l選項:crontab -l

如果你建立的指令碼對精確的執行時間要求不高,用預配置的cron指令碼目錄會更方便。有4個 基本目錄:hourly、daily、monthly和weekly。

因此,如果指令碼需要每天執行一次,只要將指令碼複製到daily目錄,cron就會每天執行它。

linux 定時執行shell

第一步 安裝 crontab 命令 yum y install vixie cron 擴充套件 service crond start 啟動服務 service crond stop 關閉服務 service crond restart 重啟服務 service crond reload 重新載入配...

linux 定時執行shell指令碼

在oracle 中可以利用dbms job包定時執行pl sql sql過程,在像備份等需要在作業系統級定時任務只能採用crontab來完成 本文講述crontab具體用法,以供備忘.在oracle 中可以利用dbms job包定時執行pl sql sql過程,在像備份等需要在作業系統級定時任務只能...

linux 定時執行shell指令碼

今天從網上看到了一篇文章,將其收藏。在oracle 中可以利用dbms job包定時執行pl sql sql過程,在像備份等需要在作業系統級定時任務只能採用crontab來完成 本文講述crontab具體用法,以供備忘.利用crontab來定時執行任務大致有如下三步 1 編寫shell指令碼 2 利...