《LINUX教學:Linux計劃任務 Crontab 詳解》要點:
本文介紹了LINUX教學:Linux計劃任務 Crontab 詳解,希望對您有用。如果有疑問,可以聯系我們。
Q:Linux下,如果想要在指定的某個時間點干點什么事,該如何訂定計劃?
A:
計劃任務,創立和管理在指定時間自動執行的任務.
注意:
要是任務計劃在指定時間自動運行,計劃任務的服務必需是啟動的.
1、使用at命令挪用atd進程設置在某個特定的時間,執行一次性任務.
2、使用crontab命令挪用crond進程,設置按固定的周期(如每天、每周等)重復執行預先計劃好的任務.
一、一次性方案任務
在指定的日期、光陰點自動執行預先設置的一些命令操作.
體系服務的名稱:/etc/init.d/atd
[root@localhost ~]# service atd start
[root@localhost ~]# service atd status
atd (pid 5790) is running... //確保atd系統服務啟動
[root@linuxidc mydata]# at 08:45
at> reboot //按Ctrl+D鍵提交任務
at> <EOT>
job 3 at 2017-06-09 08:45
[root@linuxidc mydata]# atq
3 2017-06-09 08:45 a root
1、設置格局
at? [HH:MM]? [yyyy-mm-dd]
若沒有指定年代日的,默認是當天的.
1、at? [HH:MM]?
2、at? [HH:MM]? [yyyy-mm-dd]
3、at? now +? 數字 [minutes|hours|days|weeks]
2、查詢當前設置的at義務列表
shell>?atq 或at -l
3、刪除指定義務編號的at義務
shell>?atrm 編號 #atrm=at -d
4、查看方案任務的具體內容
shell>?at -c 義務號
5、使用文件中的命令作為計劃任務(比擬少用)
shell>?at 光陰 -f 文件
1、at方案任務文件:/var/spool/at/a開頭的文件,任務執行完畢,文件消失.
2、/etc/at.deny:只有該名單里面的人弗成以使用
3、/etc/at.allow:只有該名單里面的人可以使用
二、周期方案任務
依照預先設置的時間周期(分鐘、小時、天……)重復執行用戶指定的命令操作.
1、crontab命令挪用crond進程執行.
2、體系服務的名稱:/etc/init.d/crond
3、用戶界說的設置,位于文件:/var/spool/cron/用戶名
4、cron服務的日記文件:/var/log/cron
[root@localhost /]# service crond start
[root@localhost /]# service crond status
crond (pid? 1935) is running...
1、cron服務設置裝備擺設文件:/etc/crontab
[root@linuxidc mydata]# 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
注意:今后寫劇本讓crontab去自動執行的時候,盡量寫命令的絕對目錄.
crontab 只會在/sbin、/bin、/usr/sbin、/usr/bin下查找敕令,如果敕令不在這些目錄中,應該要使用絕對路徑.
2、管理cron方案任務
root用戶可以管理指定用戶的計劃任務、普通用戶只能管理本身的計劃任務
1、編纂計劃任務:crontab? -e? -u? 用戶名
2、查看方案任務:crontab? -l? -u? 用戶名
3、刪除方案任務:crontab? -r? -u? 用戶名
[root@localhost linuxidc]# crontab -e //進入編纂模式,不接用戶名的,默認是當前用戶
no crontab for root - using an empty one
crontab: installing new crontab
[root@localhost linuxidc]# crontab -l
50 3 2 3 * echo "123"
[root@localhost linuxidc]# crontab -r
[root@localhost linuxidc]# crontab -l
no crontab for root
3、編纂語法
通過crontab -e 進入編纂模式后,語法格式如下:
?
時間數值的特殊表示辦法:
1、*? ? 表現該范圍內的任意時間
2、,? ? 表現間隔的多個不連續時間點
3、-? ? 表現一個連續的時間范圍
4、/n? 指定間隔的光陰頻率
注意:
1、資源分配不均:多個方案任務同時運行.
2、平安檢查:防止有非法計劃任務.
3、周和日、月弗成同時并存:容易導致計劃任務時間混亂.
4、缺陷補充
缺陷:cron在系統關機后不克不及執行計劃任務……
為周期性計劃任務cron收拾殘局的anacron程序辦理該缺陷.
1、anacron程序是系統自帶的定時任務,不克不及替代cron
服務名稱:/etc/init.d/anacrond
服務日記:/var/spool/anacron
服務設置裝備擺設文件:/etc/anacrontab
2、會每個小時被執行一次,劇本在/etc/cron.hourly
3、按天、周或月為單元去檢查系統未進行的cron任務
4、開機時自動運行,然后將未執行的方案任務執行一遍后,anacron 就會自動停止
本文永遠更新鏈接地址:
《LINUX教學:Linux計劃任務 Crontab 詳解》是否對您有啟發,歡迎查看更多與《LINUX教學:Linux計劃任務 Crontab 詳解》相關教程,學精學透。維易PHP學院為您提供精彩教程。