Linux: 系统配置 crond 和 crontab(有图有代码有真相!!!)
1、相關概述
linux下工作調度的種類有:at ?, ?cron?
一種是例行性的,就是每隔一定的周期來辦某事。
一種是突發性的,就是做完這一次沒有以后。
crontab這個命令所設置的工作將會一直循環進行下去,循環的時間可以是分鐘、小時、每周、‘每月、每年等,crontab除了命
令執行外,也可以編輯/etc/crontab來支持,而crond就是讓crontab生效的服務。
2、crond 和 crontab :
crond的概念和crontab是不可分割的。crontab是一個命令,常見于Unix和類Unix的操作系統之中,用于設置周期性被執行的指令。該命令從標準
輸入設備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執行。該詞來源于希臘語chronos(χρ?νο?),原意是時間。而crond正是它的守護
進程。
3、crond 定時任務
Crond是linux系統用來定期執行命令或指定程序任務的一種服務或軟件。一般情況下,我們安裝完CentOS5/6linux操作系統之后,默認便會啟動
Crond任務調度服務。Crond服務會定期(默認每分鐘檢查一次)檢查系統中是否有要執行的任務工作。如果有,便會根據其預先設定的定時任務規
則自動執行該定時任務工作。這個Crond定時任務服務就相當于我們早上使用的鬧鐘一樣。
linux系統中定時任務調度的工作可以分為以下兩種情況:
1)、 linux系統自身定期執行的任務工作:系統周期性自行執行的任務工作,如輪詢系統日志、備份系統數據、清理系統緩存等,
這些任務無須我們人為干預。例如:
2)、用戶執行的任務工作:某個用戶或系統管理員定期要做的工作,例如每隔5分鐘和互聯網上的時間服務器進行時間同步,
每天晚上0點備份網站站點數據及數據庫數據,一般這些工作需要由用戶自己來設置。
3)、crond服務是運行的程序,而crontab是用戶用來設置定時規則的命令。
crontab -l 查看用戶設置的定時任務)
crontab-e 編輯定時任務配置文件
crontab-u 設定某個用戶的crontab服務只有root用戶才能執行
crontab-r 刪除crontab文件
crontab-i 刪除crontab文件給出提示
4)crontab語法格式中時間段的含義
| 段 | 含義 | 取值范圍(整數) |
| 第一段 | 表示分鐘 | 00-59(00也可以是0) |
| 第二段 | 表示小時 | 00-23 |
| 第三段 | 表示日、天 | 01-31 |
| 第四段 | 表示月份 | 01-12 |
| 第五段 | 表示星期、周幾 | 0-7(0和7都表示周日) |
| 提示:記憶口訣:分時日月周 |
| 特殊符號 | 含義 |
| * | *號表示任意時間都,實際就是“每”的意思。如:00 23 * * * cmd表示每月每周每日的23:00都執行cmd任務。 提示:定時任務如果是到小時,口述時就最多提每天。 分位上的*就等價于0-59,表示每分。 |
| - | 減號,表示分隔符,表示一個時間范圍,區間段,如17-19點,每天的17,18,19點的00分執行任務。00 17-19 * * * cmd。就是17,18,19點整點分別執行的意思。 |
| , | 逗號,表示分隔時段的意思。30 17,18,19 * * * /bin/sh /scripts/test.sh 表示每天17、18、19點的半點時刻執行/scripts/test.sh腳本。 |
| /n | n代表數字,即“每個n單位時間”,例如:每10分鐘執行一次任務,可以寫成*/10 * * * * cmd,其中*/10的意思是每10分鐘執行cmd命令。 |
4、用戶定時任務例子
基本格式 :?
* * * * * command?
分 時 日 月 周 命令?
第1列表示分鐘1~59 每分鐘用*或者 */1表示?
第2列表示小時1~23(0表示0點)?
第3列表示日期1~31?
第4列表示月份1~12?
第5列標識號星期0~6(0表示星期天)?
第6列要運行的命令
每個一分鐘執行一次 test.sh
總結
以上是生活随笔為你收集整理的Linux: 系统配置 crond 和 crontab(有图有代码有真相!!!)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言实现读取elf文件某section
- 下一篇: CentOS7和CentOS8 Aste