计划任务文件 linux,Linux之任务计划
一、單次任務計劃
二、周期性任務計劃
一、單次任務計劃
命令:
batch:系統空閑時自動執行,不常用
at:可以使用相對時間、絕對時間或模糊時間,例如
相對時間:at now+3min,表示3分鐘后執行
絕對時間:at 11:30,表示在11:30執行
模糊時間:at noon | midnight | teatime,表示在對應模糊時間執行
------------------------------------------
at常用選項:
-l:查看等待執行的任務,同atq
-d: 刪除未執行的任務,同atrm
-f:指定腳本文件
------------------------------------------
1、使用at計劃任務[root@TESTHOST?SPECS]#?at?now+3min????#3分鐘后執行的任務
at>?cat?/etc/passwd????#任務1
at>?cat?/etc/shadow????#任務2
at>?date????#任務3
at>?ls?/scripts/????#任務4
at>?????#結束Ctrl+d提交任務
job?3?at?2015-04-24?08:20
You?have?mail?in?/var/spool/mail/root????#執行結果以郵件方式發送給任務發起者
2、查看郵件,使用命令mail[root@TESTHOST?SPECS]#?mail????#使用mail命令查看郵件
Heirloom?Mail?version?12.4?7/29/08.??Type???for?help.
"/var/spool/mail/root":?3?messages????#下列信息最前面的數字1為郵件編號
>???1?root??????????????????Fri?Apr?24?08:17??61/2298??"Output?from?your?job????????"
2?root??????????????????Fri?Apr?24?08:18??15/524???"Output?from?your?job????????"
3?root??????????????????Fri?Apr?24?08:20??62/2327??"Output?from?your?job????????"
&?1????#提示符&后輸入郵件編號,查看任務執行結果
Message??1:
From?root@TESTHOST.localdomain??Fri?Apr?24?08:17:14?2015
Return-Path:?
X-Original-To:?root
Delivered-To:?root@TESTHOST.localdomain
Subject:?Output?from?your?job????????1
To:?root@TESTHOST.localdomain
Date:?Fri,?24?Apr?2015?08:17:14?+0800?(CST)
From:?root@TESTHOST.localdomain?(root)
Status:?RO
#信息太多,這里略去
##################################################
New?mail?has?arrived.????#提示有新郵件到達
Loaded?1?new?message
N??4?root??????????????????Fri?Apr?24?19:29??31/571???"Output?from?your?job????????"
&?q????#輸入q回車,退出mail
Held?4?messages?in?/var/spool/mail/root????#告訴root用戶有4條信息
[root@TESTHOST?SPECS]#
3、查看等待執行的任務,使用命令at -l或atq[root@TESTHOST?SPECS]#?at?-l
62015-04-24?19:41?a?root????#數字6為任務編號
[root@TESTHOST?SPECS]#?atq
62015-04-24?19:41?a?root
4、刪除未執行的任務,使用命令at –d或atrm[root@TESTHOST?SPECS]#?at?now+3min????#新建一個任務計劃
at>?ls?/var
at>?
job?7?at?2015-04-24?19:48
[root@TESTHOST?SPECS]#?at?-l????#查看待執行任務,任務編號為7
72015-04-24?19:48?a?root
[root@TESTHOST?SPECS]#?date????#查看當前系統時間
Fri?Apr?24?19:45:44?CST?2015
[root@TESTHOST?SPECS]#?at?-d?7????#刪除未執行的任務,at?-d?#任務編號
[root@TESTHOST?SPECS]#?at?-l????#任務已刪除
5、計劃執行腳本,使用命令at –f /path/to/scriptfile TIME
注:使用at命令,Ctrl+d提交任務出現如下提示,則證明計劃任務依賴的atd服務未啟動Can't?open?/var/run/atd.pid?to?signal?atd.?No?atd?running?
查看atd服務狀態,并啟動[root@TESTHOST?SPECS]#?/etc/init.d/atd?status????#查看服務狀態
atd?is?stopped
[root@TESTHOST?SPECS]#?/etc/init.d/atd?start????#啟用服務
Starting?atd:??????????????????????????????????????????????[??OK??]
[root@TESTHOST?SPECS]#?/etc/init.d/atd?status????#服務已運行
atd?(pid??34529)?is?running...
二、周期性任務計劃
1、依賴服務:crond[root@TESTHOST?SPECS]#?service?crond?status
crond?(pid??1222)?正在運行...
2、crond配置文件
2.1、 系統crond配置文件及格式:/etc/crontab[root@TESTHOST?~]#?cat?/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root????#任務執行結果發送郵件給用戶
HOME=/
#?For?details?see?man?4?crontabs
#?Example?of?job?definition:
#?.----------------?minute?(0?-?59)
#?|??.-------------?hour?(0?-?23)
#?|??|??.----------?day?of?month?(1?-?31)
#?|??|??|??.-------?month?(1?-?12)?OR?jan,feb,mar,apr?...
#?|??|??|??|??.----?day?of?week?(0?-?6)?(Sunday=0?or?7)?OR?sun,mon,tue,wed,thu,fri,sat
#?|??|??|??|??|
#?*??*??*??*??*?user-name?command?to?be?executed????#星號后分別接用戶、任務命令
2.2、用戶crond配置文件及格式:/var/spool/cron/USERNAME[root@TESTHOST?~]#?crontab?-e????#編輯當前用戶的crond配置文件
no?crontab?for?root?-?using?an?empty?one????#編輯后,保存退出,提示為root用戶新建crond配置文件
crontab:?installing?new?crontab
[root@TESTHOST?~]#?ls?/var/spool/cron/????#用戶crond配置文件,文件名同用戶名
root
[root@TESTHOST?~]#?cat?/var/spool/cron/root
#?Example?of?job?definition:
#?.----------------?minute?(0?-?59)
#?|??.-------------?hour?(0?-?23)
#?|??|??.----------?day?of?month?(1?-?31)
#?|??|??|??.-------?month?(1?-?12)?OR?jan,feb,mar,apr?...
#?|??|??|??|??.----?day?of?week?(0?-?6)?(Sunday=0?or?7)?OR?sun,mon,tue,wed,thu,fri,sat
#?|??|??|??|??|
#?*??*??*??*??*?command?to?be?executed????#星號后接任務命令
*/2?*?*?*?*??ls?/var
注:系統默認PATH=/bin:/sbin:/usr/bin:/usr/sbin,計劃任務中使用的命令不在系統默認PATH中時,則使用絕對路徑;使用腳本時,在腳本中自行定義PATH
2.3、配置文件周期格式含義
支持通配符:
*:相應時間點的所有有效取值,例如3?*?*?*?*????#每小時第3分
3?4?*?*?*?????#每天的4點03分
3?4?5?*?*????#每月5號的4點03分
0?0?*?*?*?[?$[($(date?+%s)/86400)%3]?-eq?0?]?&&?/usr/sbin/ntpdate?10.1.1.120?&>?/dev/null????#每3天執行一次時間同步
,:離散取值,例如3,15,27,39,51?*?*?*?*????#每12分鐘
/:定義指定取值范圍內的頻率,例如
*/2?*?*?*?*????#每2分鐘
17?*/3?*?*?*????#每3小時的第17分
-:連續取值,例如
17?8-20/3?*?*?*????#每天的8時-20時之間的每小時的第17分
以秒單位執行任務計劃:
方法1:
* * * * * sleep 30 && /usr/bin/unison webdata??? #每30秒
方法2:
* * * * * for i in 0 1 2; do some_job && sleep 15; done; some_job??? #每15秒,循環次數為(60/n-1)
* * * * * for i in {1..5}; do some_job && sleep 10; done; some_job??? #每10秒
注意:使用%時要加反斜線。例如:
1 2 3 * * touch ~/file_$(date +\%Y\%m\%d).txt
但使用單引號后也可以不再使用反斜線,例如:
1 2 3 * * touch ~/file_$(date '+%Y%m%d').txt
2.4、拒收郵件
方法1:配置文件中定義MAILTO=’’
方法2:將命令輸出信息重定向??? &> /dev/null或> /dev/null 2>&1??? #bash下,這兩個重定向等價
3、crontab命令
常用選項:
-e:編輯任務計劃
-r:移除配置文件,刪除部分任務計劃使用-e編輯
-l:列出周期性任務
-u USERNAME:??? #管理員可用的選項,可結合選項-e,-r,-l編輯、刪除、查看其他用戶的任務
博主的歸納總結質量都很高,文章的知識結構劃分更容易閱讀和理解,謝謝哈!
單擊圖片后放大查看
總結
以上是生活随笔為你收集整理的计划任务文件 linux,Linux之任务计划的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker redis重启_Docke
- 下一篇: 复制Linux虚拟机后的网卡问题解决