Linux任務計劃和週期性任務執行
linux計劃任務有兩類
- at:未來某個時間點僅執行一次任務就結束的指令,at指令執行時必須要有atd這個服務支援。
- crontab:可以以時間單位為分鐘,小時,每天,每週,每月,每年等迴圈執行某任務。
單一任務at介紹:
語法格式:at -[lfdcq] TIME
常用選項:
-l 檢視作業佇列,相當於atq
-f 從某個指定檔案檔案中讀取作業任務,不通過互動式輸入。
-d 刪除指定的作業任務,相當於atrm。
-c 檢視指定作業具體內容。
-q QUEUE指明佇列。
TIME時間格式有:
HH:MM 小時:分鐘 例如04:00
HH:MM YYYY-MM-DD 小時:分鐘 年-月-日 例如15:00 2017-11-25
HH:MM[am|pm] [Month] [Date] 例如:04pm July 30
HH:MM[am|pm] + number [minutes|hours|days|weeks]在某個時間點再加幾個時間後執行
例如:now + 5minutes 5分鐘後執行
04pm + days三天後下午4點執行
[[email protected] ~]# at 15:55 2017-11-25 在15點55分執行:切換到tmp目錄,執行ls命令
at> cd /tmp
at> ls
at> <EOT>
job 3 at Sat Nov 25 15:55:00 2017
注意:輸入結束後按ctrl+d,任務輸入結束at> <EOT>,執行結果螢幕不會顯示,會以郵件形式傳送到郵箱。要是沒有mail命令,進行yum -y install mailx安裝。
batch命令:系統空閒時才進行的背景任務,他是通過at下達的。
週期性任務計劃cron
執行週期性任務要確保crond守護程序在執行。
執行pstree,要是crond執行起來可以看到。
或者執行:~]# systemctl status crond (centos7)
Active: active (running) … …
centos6:~]# service crond status
… is running
有時候為了安全起見,可以將不允許某些使用者執行週期性任務的使用者名稱新增到/etc/cron.deny檔案裡面即可。
cron任務分類:分系統cron任務和使用者cron任務
系統cron任務:主要用於維護系統自身。
可以手動編輯/etc/crontab檔案實現。
系統cron任務格式
1 SHELL=/bin/bash 使用哪種shell介面
2 PATH=/sbin:/bin:/usr/sbin:/usr/bin 執行檔案搜尋路徑
3 MAILTO=root 以email將資料發給誰
4
5 # For details see man 4 crontabs
6
7 # Example of job definition:
8 # .---------------- minute (0 - 59)
9 # | .------------- hour (0 - 23)
10 # | | .---------- day of month (1 - 31)
11 # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
12 # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
13 # | | | | |
14 # * * * * * user-name command to be executed
(1) 每一行定義一個週期性任務,共7個欄位。
* * * * * : 定義週期性時間。
user-name : 執行任務的使用者身份。
command to be executed:要執行的任務。
(2) 此處的環境變數不同於使用者登入後獲得的環境,因此,建議命令使用絕對路徑,或者自定義PATH環境變數;
(3) 執行結果以郵件形式傳送給MAILTO指定的使用者。
使用者cron任務:
當用戶使用crontab命令來建立週期任務後,這項工就會被記錄到/var/spool/cron/USERNAME這個檔案中去,
他們以使用者名稱來區分。
crontab [-u username] [-l|-e|-r]
-u 只要有root使用者才能進行這個任務,即為其他使用者建立或刪除crontab任務。
-l 列出所有任務。
-e 編輯任務。
-r 刪除所有crondtab任務,即刪除/var/spool/cron/USERNAME檔案,若要刪除一項,可以用-e選項去編輯。
使用者週期性任務定義格式:
* * * * * command to be executed
對應意義為:分 時 日 月 周 使用者指令
每行定義一個任務,共六個欄位。任務執行後的結果以郵件發給使用者。
週期任務時間表示法:
分(0-59) 時(0-23) 日(1-31) 月(1-12) 周 (0-7 0和7都代表星期天)
星號* :表示任何時刻意思
逗號",":b表示時段分隔,指定多個時間點做某事,例如當我要下達的任務是在每天3:00月6:00時,
0 3,6 * * * COMMAND 時間引數還是5欄
減號“-”:表示一段時間範圍,例如我要在8點到12點之間的每小時20分進行一
項工作, 20 8-12 * * * COMMAND
/n :n代表數字,即是每隔n個時間單位意思,例如每5分鐘進行一次。
*/5 * * * * COMMAND
常見例項:
示例:
(1) 3 * * * *:每小時執行一次;每小時的第3分鐘;
(2) 3 4 * * 5:每週執行一次;每週5的4點3分;
(3) 5 6 7 * *:每月執行一次;每月的7號的6點5分;
(4) 7 8 9 10 *:每年執行一次;每年的10月9號8點7分;
(5) 9 8 * * 3,7:每週三和週日8點09分;
(6) 0 8,20 * * 3,7:每週三和週日8點和20
(7) 0 9-18 * * 1-5:每週一到週五9點到18點
(8) */5 * * * *:每5分鐘執行一次某任務;
應用例項:
1.每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,儲存的目錄名為形如etc-201504020202
[centos@dxlcentOS ~]$ crontab -e 進入編輯介面
0 */4 * * * cp -a /etc /backup/etc-$(date +\%Y\%m\%d\%H\%M)
2.每週2,4,6備份/var/log/messages檔案至
/backup/messages_logs/目錄中,儲存的檔名形如messages-20150402
[centos@dxlcentOS ~]$ crontab -e
0 0 * * 2,4,6 cp -a /var/log/messages /backup/messages-$(date +\%Y\%m\%d)
3.每天每兩小時取當前系統/proc/meminfo檔案中的所有以S開頭的資訊至/stats/memory.txt檔案中
[centos@dxlcentOS ~]$ crontab -e
0 */2 * * * cat /proc/meminfo | grep "^S" >> /stats/memory.txt
4.工作日的工作時間內,每兩小時執行一次echo ”howdy”
[centos@dxlcentOS ~]$ crontab -e
0 9-18/2 * * 1-5 echo “howdy”
總結:1.cron週期任務最小時間單位是分鐘。
2.定義COMMAND時,如果命令需要用到%,需要對其轉義;但放置於單引號中的%不用轉義亦可。
3.某任務在指定的時間因關機未能執行,下次開機不會自動執行。
4.當修改之前定好的任務或新增迴圈任務時最好執行一下systemctl restart crond。
5.如果是系統管理使用的迴圈任務最好寫入/etc/crontab。
6.避免系統資源分配不均,周與日月不可以同時並存。
anacron可換醒停機期間的工作任務
cron迴圈任務設定後,要是伺服器因意外關機,那麼在停機期間,cron設定的迴圈任務是不會執行的,當伺服器開機後,也不會執行過去到達時間點的迴圈任務,只能等待下個時間點到來才執行。要想重新執行,anacron就可以解決這個問題。
anacron 是一個程式不是一個服務,當centos進入crontab排程時,anacron 會主動每一小時執行一次。
出處:http://www.178linux.com/88965
相關推薦
Linux任務計劃和週期性任務執行
linux計劃任務有兩類at:未來某個時間點僅執行一次任務就結束的指令,at指令執行時必須要有atd這個服務支援。crontab:可以以時間單位為分鐘,小時,每天,每週,每月,每年等迴圈執行某任務。單一任務at介紹:語法格式:at -[lfdcq] TIME常用選項:-
Linux任務計劃、週期性任務執行
目錄 1.at 回顧 參考資料 未來的某時間點執行一次任務:at, batch 週期性執行某任務:cron 電子郵件服務 SMTP:simple mail transmission protocol
Linux任務計劃及週期性任務執行:at、crontab命令
一、概述 未來的某時間點執行一次某任務:at, batch 週期性執行某任務:crontab 這兩個任務的執行結果:會通過郵件傳送給使用者 (本地終端使用者之間的郵件通知) centos 5,6,7預設開啟本地郵件服務 檢視是否開啟本地郵件服務: netstat -tnlp ssl -tnl 本地電
【Linux相識相知】任務計劃和周期性任務
open fonts 同時 不存在 runt 逗號 內容 bsp 事情 在我們的生活中,有的工作是例行的,例如每年一次加薪、每年給女朋友過一次生日、每天上班都要打卡等,有的工作是臨時發生的,例如明天朋友要來訪,你需要準備午餐等等。 像很多例行的工作,你一旦忙起來就很容易忘
Linux系統任務計劃和系統服務管理
腳本 可能 發的 編輯器 多個 掛載點 for 多個service cto 一、Linux系統的任務計劃 crontab命令被用來提交和管理用戶的需要周期性執行的任務,與windows下的計劃任務類似,當安裝完成操作系統後,默認會安裝此服務工具,並且會自動啟動crond進程
windows 2008 任務計劃出現”這項任務的一個例項已在執行“報錯的解決方法
寫了2個批處理,手動執行沒有任何問題 將批處理加入到2008中的計劃任務中時出現錯誤,不能正確執行,報錯內容為:這項任務的一個例項已在執行0x8004031F 解決方法: 把批處理結尾的pause改成end
實驗任務4和實驗任務5
nds validate 程序 next reg ace random 分享 refresh 實驗任務4 設計思想: 首先定義一個類用創建一個登陸界面,界面有登錄和註冊的功能,註冊按鈕觸發的事件是調用註冊函數 創建一個註冊界面用於註冊用戶,註冊完之後的
正常任務(宏任務)和微任務
interval 關於 順序 沒有 spm ask loop event 不同 最近突然被問到關於正常任務(宏任務)和微任務的問題,學習js這麽長時間來,還沒有註意到js的任務還有宏任務和微任務的區別,在網上查找以後大概知道了什麽是宏任務和微任務。 首先,宏任務包含:set
.Net程式在linux mono環境和WindowsServer上執行測試對比
最近研究了一下mono,想把windows上寫的.Net程式移植到linux上跑。網上有資料說Linux上mono執行.Net程式效率比Windows高,本著實證的態度,只有實際驗證過才有說服力。 寫了個程式驗證一下,發現linux上的mono環境執行效率確實高些,現將測試過程記錄如下。 測試環境: 1
謝煙客---------Linux之郵件服務及任務計劃執行
linux任務計劃命令mail,at,batch,crond,sleep郵件服務工作模式:發 代理-> stmp --> smtp --> 投遞代理 --> 郵筒 --> pop3,imap4 <-- 代理 <-- 收at,mail,batch,cron命令均建議用完
Linux任務計劃、周期性任務執行
linux任務計劃、周期性任務執行 crontab概論未來的某時間點執行一次某任務:at, batch 周期性運行某任務:crontab 執行結果:會通過郵件發送給用戶 查看郵箱服務是否開啟:(25端口) ~]# netstat -tnlp ~]# ss -tnl本地電子郵件服務:smtp:simple m
Linux 任務計劃,周期性任務執行之基本概念
Linux任務計算、周期性任務執行的簡單未來的某時間點執行一次某任務的命令有at、batch周期性運行某任務的命令是crontab這些命令的執行結果會通過郵件發送給用戶SMTP這個協議只能發送郵件POP3或者IMAP4才是將郵件從郵件服務器中取出的協議MUAMail User Agent 用戶收發郵件的工具程
Linux任務計劃、周期性任務執行之本地電子郵件服務/mailx
Linux 任務計劃 周期性任務執行簡單操作 Linux系統內部有個郵件服務功能/var/spool/mailCentOS6、7默認是開啟郵件服務的-s 指定郵件主題-a file_name 添加附件-r 指定郵件來源-u 指定郵件目的Hello world是郵件的主題 這個郵件是發給root的。 E
Linux任務計劃、周期性任務執行之cron/crontab
Linux crontab的簡單操作周期性任務計劃需要一個程序包,不間斷的監視時間。CentOS7需要主程序包:cronie(提供crond守護進程及相關輔助工具)周期性任務計劃工作首先需要確保crond守護進程正產運行crond需要使用專用的配置文件,此文件有固定的格式,不建議使用文本編輯器直接編輯此文件,
Linux任務計劃、周期性任務執行之at
Linux at任務計劃的簡單操作-m 如果任務完成,發送郵件給預定用戶 這個是默認選項-M 不發送郵件給預定用戶-f 從文件中讀取命令-t 指定執行時間 [CCYY]MMDDhhmm[.ss] 默認格式是HH:MM[YYYY-mm-dd]現在有兩個任務等著被執行 at -l 也可以查看預定任務現在只剩
Linux中計劃任務執行腳本crontab-簡潔版
error ESS CA lin 調度 pytho 可執行 too 用戶 我使用的是ubuntu16,所以在ubuntu中一切正常,在其他linux系統中應該都差不多。 1 計劃任務,crontab命令選項: -u指定一個用戶, -l列出某個用戶的任務
Linux中如何設置 at 一次性任務和 crontab 周期性任務計劃
afa 分享 任務計劃 log pro bcd tps 命令格式 設置 首先來看如何設置一次性任務,命令格式為:at [HH:MM] [yyyy-mm-dd]; 查看一次性任務計劃的命令為:“ atq ” 刪除一次性任務計劃的命令格式為:“ atrm [任務編號]
10、自學——Linux的學習進度與任務【用戶和用戶組相關操作】
sha256 用戶授權 gpasswd upm 登錄 shel 默認 不同 管理 用戶和用戶組相關操作 用戶和用戶組定義: 用戶:資源獲取標識符(資源分配),是安全權限模型的可信要素之一 用戶組:用戶組是指多個用戶的集合,方便對一類需要同樣權限的用戶授權
Linux 的計劃任務
由於 個人 進程 url 修改 bsp 文件格式 可執行 star Linux操作系統定時任務系統 Cron 入門 cron是一個linux下的定時執行工具,可以在無需人工幹預的情況下運行作業。由於Cron 是Linux的內置服務,但它不自動起來,可以用以下
Linux 系統延時任務和定時任務
linux基礎運維學習一、延時任務 在Linux中延時任務是臨時的,可以指定某一個任務在將來的特定時間運行1、at命令 基本操作格式:[[email protected]/* */ ~]# at now+1min at> date<EOT> #EOT代表Ctrl+D來保存