1. 程式人生 > >Linux任務計劃和週期性任務執行

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.每週246備份/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來保存