tft每日頭條

 > 生活

 > linux任務列表

linux任務列表

生活 更新时间:2024-12-14 10:52:21

linux任務列表(Linux中的計劃任務)1

Linux計劃任務分為一次性的和周期性的兩類。

執行一次性的計劃任務使用at命令。每次執行at命令需要給它傳遞一個時間參數,來指明計劃任務執行的時間。比如:

$ at 10:00 tomorrow

在執行at命令之後,命令就會變成這樣:

at>

此時,隻要直接輸入想要執行的命令即可,比如echo "hello world"。輸入完命令之後,按組合鍵 Ctrl D來保存。然後機會立即顯示類似這樣的内容:

job 1 at 2017-12-30 10:00

這說明“job 1”将在2017年12月30日10:00整執行。這樣就成功地創建了一個一次性任務。而且,每個計劃任務也不是隻能執行一個程序,也可以是一個按行劃分的程序列表,待執行任務時,按程序出現的次序依次執行。

在Linux中Ctrl D代表EOF,說明已經輸入完畢。但是這種EOF僅對直接從鍵盤中獲得輸入的情況有效,即輸入Ctrl D之後,代表從鍵盤中獲得的輸入完畢了。所有的這種從标準輸入獲取輸入數據的程序都可以使用類似方法輸入數據。但是這種錄入數據的方法有一個缺點,就是一旦中間有錯誤,就隻能全部從來。為了彌補這個缺點,可以使用I/O重定向将一個文件中的内容輸入給它。

周期性任務cron都是通過crontab命令來完成的。“crontab -e”用來編輯當前用戶的cron表;“crontab -l”查看當前用戶的cron表;“crontab -r”删除當前用戶的cron進程;“crontab -u 用戶名”以某用戶的身份來控制cron表。

一個cron任務在cron表用一行來表示。每一行被分為兩列,左邊是時間,右邊是具體運行的命令,時間是由5個部分組成,每部分用空格隔開,分别代表:

  • 每小時的第幾分鐘:0~59;

  • 每天的第幾小時:0~23;

  • 每月的第幾天:0~31;

  • 每年的第幾個月:1~12;

  • 每周的星期幾:0~6,0表示星期日;

此外,在時間和命令之間,還有一個可選的用戶名,用來說明cron以何種用戶身份來執行命令。因此,一個cron任務的完整定義應該是:

分鐘 小時 [用戶名] 命令

比如要設定我女朋友生日那天,沒到整點就提醒我買禮物,那麼可以在cron表中添加如下一條:

0 * 1 8 * echo "女朋友生日,要買禮物。"

然後按“ESC”鍵退出到命令模式,輸入“:wq”,退出并保存。這樣,每到8月1日,整點就會提醒我。但是,突然發現整點有點太寬泛,甚至0點就開始提醒我,有些不妥,做了如下修改:

0,15,30,45 12 1 8 * echo "女朋友生日,要買禮物。"

這樣,隻有8月1日的中午12點,每隔15分鐘,會提醒我一次。這樣顯然不錯,還可以更簡潔些,改進為:

*/15 12 1 8 * echo "女朋友生日,要買禮物。"

通過上面的這些内容,可以比較直觀的看出,cron表中的時間設定擁有極高的靈活性,使得設定周期任務非常方便。每一個時間參數可以有幾種符号表示,如表2-1所示:

linux任務列表(Linux中的計劃任務)2

2-1

雖然計劃任務有時非常有用,但是也不是所有用戶都能添加的,具體誰能添加計劃任務,主要由系統中這四個文件來決定:at.allow、at.deny、cron.allow和cron.deny。顧名思義,以at開頭的管理at,以cron開頭的管理cron。而且這些問價是有互斥性的,即allow和deny不會同時存在。allow也叫白名單,deny也叫黑名單,所以在allow中的用戶就允許指定計劃任務,而在deny中的用戶就不能指定計劃任務。

絕對幹貨!!!持續更新!!!

如果您喜歡請加關注!!!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved