linux计划任务执行bin文件,Linux任务计划和周期性任务执行
linux計劃任務有兩類
at:未來某個時間點僅執(zhí)行一次任務就結束的指令,at指令執(zhí)行時必須要有atd這個服務支持。
crontab:可以以時間單位為分鐘,小時,每天,每周,每月,每年等循環(huán)執(zhí)行某任務。
單一任務at介紹:
語法格式:at -[lfdcq] TIME
常用選項:
-l 查看作業(yè)隊列,相當于atq
-f 從某個指定文件文件中讀取作業(yè)任務,不通過交互式輸入。
-d 刪除指定的作業(yè)任務,相當于atrm。
-c 查看指定作業(yè)具體內(nèi)容。
-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]在某個時間點再加幾個時間后執(zhí)行
例如:now + 5minutes 5分鐘后執(zhí)行
04pm + days三天后下午4點執(zhí)行
[root@dxlcentOS ~]# at 15:55 2017-11-25 在15點55分執(zhí)行:切換到tmp目錄,執(zhí)行l(wèi)s命令
at> /usr/bin/cd /tmp
at> /usr/bin/ls
at>
job 3 at Sat Nov 25 15:55:00 2017
注意:輸入結束后按ctrl+d,任務輸入結束at> ,執(zhí)行結果屏幕不會顯示,會以郵件形式發(fā)送到郵箱。要是沒有mail命令,進行yum -y install mailx安裝。
batch命令:系統(tǒng)空閑時才進行的背景任務,他是通過at下達的。
周期性任務計劃cron
執(zhí)行周期性任務要確保crond守護進程在運行。
執(zhí)行pstree,要是crond運行起來可以看到。
或者執(zhí)行:~]# systemctl status crond (centos7)
Active: active (running) … …
centos6:~]# service crond status
… is running
有時候為了安全起見,可以將不允許某些用戶執(zhí)行周期性任務的用戶名添加到/etc/cron.deny文件里面即可。
cron任務分類:分系統(tǒng)cron任務和用戶cron任務
系統(tǒng)cron任務:主要用于維護系統(tǒng)自身。
可以手動編輯/etc/crontab文件實現(xiàn)。
系統(tǒng)cron任務格式
1 SHELL=/bin/bash 使用哪種shell接口
2 PATH=/sbin:/bin:/usr/sbin:/usr/bin 執(zhí)行文件搜索路徑
3 MAILTO=root 以email將數(shù)據(jù)發(fā)給誰
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:要執(zhí)行的任務。
(2) 此處的環(huán)境變量不同于用戶登錄后獲得的環(huán)境,因此,建議命令使用絕對路徑,或者自定義PATH環(huán)境變量;
(3) 執(zhí)行結果以郵件形式發(fā)送給MAILTO指定的用戶。
用戶cron任務:
當用戶使用crontab命令來建立周期任務后,這項工就會被記錄到/var/spool/cron/USERNAME這個文件中去,
他們以用戶名來區(qū)分。
crontab [-u username] [-l|-e|-r]
-u 只要有root用戶才能進行這個任務,即為其他用戶建立或刪除crontab任務。
-l 列出所有任務。
-e 編輯任務。
-r 刪除所有crondtab任務,即刪除/var/spool/cron/USERNAME文件,若要刪除一項,可以用-e選項去編輯。
用戶周期性任務定義格式:
* * * * * command to be executed
對應意義為:分 時 日 月 周 用戶指令
每行定義一個任務,共六個字段。任務執(zhí)行后的結果以郵件發(fā)給用戶。
周期任務時間表示法:
分(0-59) 時(0-23) 日(1-31) 月(1-12) 周 (0-7 0和7都代表星期天)
星號* :表示任何時刻意思
逗號",":b表示時段分隔,指定多個時間點做某事,例如當我要下達的任務是在每天3:00月6:00時,
0 3,6 * * * COMMAND 時間參數(shù)還是5欄
減號“-”:表示一段時間范圍,例如我要在8點到12點之間的每小時20分進行一
項工作, 20 8-12 * * * COMMAND
/n :n代表數(shù)字,即是每隔n個時間單位意思,例如每5分鐘進行一次。
*/5 * * * * COMMAND
常見實例:
示例:
(1) 3 * * * *:每小時執(zhí)行一次;每小時的第3分鐘;
(2) 3 4 * * 5:每周執(zhí)行一次;每周5的4點3分;
(3) 5 6 7 * *:每月執(zhí)行一次;每月的7號的6點5分;
(4) 7 8 9 10 *:每年執(zhí)行一次;每年的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分鐘執(zhí)行一次某任務;
應用實例:
1.每4小時執(zhí)行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名為形如etc-201504020202
[centos@dxlcentOS ~]$ crontab -e 進入編輯界面
0 */4 * * * /usr/bin/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 /usr/bin/cp -a /var/log/messages /backup/messages-$(date +\%Y\%m\%d)
3.每天每兩小時取當前系統(tǒng)/proc/meminfo文件中的所有以S開頭的信息至/stats/memory.txt文件中
[centos@dxlcentOS ~]$ crontab -e
0 */2 * * * /usr/bin/cat /proc/meminfo | grep "^S" >> /stats/memory.txt
4.工作日的工作時間內(nèi),每兩小時執(zhí)行一次echo ”howdy”
[centos@dxlcentOS ~]$ crontab -e
0 9-18/2 * * 1-5 /usr/bin/echo “howdy”
總結:1.cron周期任務最小時間單位是分鐘。
2.定義COMMAND時,如果命令需要用到%,需要對其轉義;但放置于單引號中的%不用轉義亦可。
3.某任務在指定的時間因關機未能執(zhí)行,下次開機不會自動執(zhí)行。
4.當修改之前定好的任務或新增循環(huán)任務時最好執(zhí)行一下systemctl restart crond。
5.如果是系統(tǒng)管理使用的循環(huán)任務最好寫入/etc/crontab。
6.避免系統(tǒng)資源分配不均,周與日月不可以同時并存。
7.為了避免計劃任務不執(zhí)行,計劃任務中的命令最好使用絕對路徑。
anacron可換醒停機期間的工作任務
cron循環(huán)任務設定后,要是服務器因意外關機,那么在停機期間,cron設定的循環(huán)任務是不會運行的,當服務器開機后,也不會執(zhí)行過去到達時間點的循環(huán)任務,只能等待下個時間點到來才執(zhí)行。要想重新執(zhí)行,anacron就可以解決這個問題。
anacron 是一個程序不是一個服務,當centos進入crontab排程時,anacron 會主動每一小時運行一次。
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.178linux.com/88965
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的linux计划任务执行bin文件,Linux任务计划和周期性任务执行的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视网膜静脉阻塞的原因
- 下一篇: 耳鸣和肾炎有关吗