新聞中心
Linux作為一款自由開源的操作系統(tǒng),已經(jīng)成為了許多企業(yè)和個人的首選。其中,任務(wù)調(diào)度是Linux內(nèi)核的一個重要特性,是一種能夠自動化地執(zhí)行定期或無限期的任務(wù)的機制。本文將會向大家介紹如何在Linux中實現(xiàn)每五分鐘定時執(zhí)行的任務(wù)調(diào)度。

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的騰沖網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
任務(wù)調(diào)度介紹
在Linux系統(tǒng)中,任務(wù)調(diào)度器的作用是使計算機對系統(tǒng)內(nèi)的任務(wù)進行管理和安排。任務(wù)調(diào)度器可以讓你安排一項或多項任務(wù)在指定的時間點或周期性地運行。
在Linux中,cron就是最常見的任務(wù)調(diào)度器程序,它可以協(xié)助程序員統(tǒng)籌安排 Linux 系統(tǒng)中的一切任務(wù),例如備份數(shù)據(jù)、生成數(shù)據(jù)報告、修改權(quán)限、開啟服務(wù)等等,還可以設(shè)置清理緩存、定期重啟等任務(wù)。
如何使用cron進行任務(wù)調(diào)度?
需要編輯crontab文件。
在終端中輸入:
“`
$ crontab -e
“`
這時,編輯器就會打開一個新的文件,在這里輸入任務(wù)的配置信息,格式為:
“`
* * * * * /path/to/command arg1 arg2
“`
每個部分的意思為:
“`
* * * * * command to be executed
– – – – –
| | | | |
| | | | +- Weekday (0-6) (Sunday=0)
| | | +—— Month (1-12)
| | +——- Day of the Month (1-31)
| +——– Hour (0-23)
+——— Minute (0-59)
“`
上面的星號代表任何值皆可,也就是說,大部分情況下你并不需要設(shè)置所有選項值,僅僅只需要關(guān)注你需要的那個時間即可。例如,如果你想讓一條命令每五分鐘執(zhí)行一次,只需要這樣輸入:
“`
*/5 * * * * /path/to/command
“`
其中,*/5 表示每隔五分鐘執(zhí)行一次,其余選項以星號代替,表示任何值皆可。當然,你需要將 /path/to/command 替換成你的任務(wù)命令。
如果你希望任務(wù)輸出到文件中,可以在命令末尾添加 ‘> /path/to/file’,例如:
“`
*/5 * * * * /path/to/command > /var/log/command.log
“`
這個命令將把任務(wù)輸出到文件 /var/log/command.log 中。
保存文件后,crontab就會自動將其加入到任務(wù)隊列里,然后計算機就會在你指定的時間點自動運行任務(wù)了。
如果你想查看當前已經(jīng)設(shè)置的任務(wù),請在終端輸入:
“`
$ crontab -l
“`
如何使用anacron進行任務(wù)調(diào)度?
除了cron外,Linux中的另一個任務(wù)調(diào)度器是anacron,它特別適用于那些在電腦開機/關(guān)閉期間漏掉任務(wù)的情況。
anacron也使用類似于crontab的方式來定義任務(wù),但還有一些額外的選項你需要了解:
“`
RANDOM_DELAY:隨機延時
如果多個任務(wù)同時啟動,可以使用RANDOM_DELAY選項讓它們之間產(chǎn)生一些隨機的延時,避免資源爭奪。
START_HOURS_RANGE:啟動時間范圍
anacron可以讓你在一個時間范圍內(nèi)啟動任務(wù),例如,你可以指定任務(wù)只有在凌晨1點到5點之間執(zhí)行,這樣可以避免任務(wù)耗費太多資源。
KILL_BEFORE_START:殺死之前執(zhí)行的任務(wù)
例如,如果有一個任務(wù)耗費了太多系統(tǒng)資源,可能會導致新任務(wù)無法開啟,這時就可以指定KILL_BEFORE_START選項,讓anacron在啟動任務(wù)之前殺死該任務(wù)。
“`
如果你要在anacron中實現(xiàn)每五分鐘定時執(zhí)行的任務(wù),你需要編寫一個腳本文件,在文件中定義任務(wù)調(diào)度的方式,例如:
“`
#!/bin/sh
# Set defaults
DELAY=${DELAY:-“0”}
# Sleep for random delay
if [ $DELAY -gt 0 ]; then
sleep $(( (RANDOM % $DELAY) + 1 ))m
fi
# Execute command
/path/to/command
“`
其中,DELAY參數(shù)可以用來實現(xiàn)隨機延時,也可以手動設(shè)定延時時間。然后,你需要將該腳本加入到anacron的任務(wù)調(diào)度表中:
在終端中輸入:
“`
$ sudo nano /etc/anacrontab
“`
然后在尾部添加:
“`
5 0 * * * root /path/to/script
“`
這個命令會在每天的0:05執(zhí)行同一個腳本,即為 /path/to/script。
在Linux系統(tǒng)中使用任務(wù)調(diào)度器進行自動任務(wù)管理能夠大大減輕工作量,讓程序員無需手動干涉的同時也能保證重復任務(wù)的執(zhí)行細節(jié)。本文向大家介紹了如何在cron和anacron中實現(xiàn)每五分鐘的定時任務(wù),包括任務(wù)調(diào)度表的編輯方式和幾個常用的選項。希望這篇文章對你有所幫助,如有疑問請留言討論。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風格,熱線:028-86922220crontab定時任務(wù) 和linux請求接口
我能看懂的我感覺所有人都可以看懂
1. crontab文件格式:
*****command
minute hour day month week command
分時 知做瞎天 月星期命令
minute: 表示分鐘,可以是從0到59之間的任何整數(shù)。
hour:表示小時,可以是從0到23之間的任何整數(shù)。
day:表示日期,胡納可以是從1到31之間的任何整數(shù)。
month:表示月份,可以是從1到12之間的任何整數(shù)。
week:表示星期幾,可以是從0到7之間的任何整數(shù),這里的0或7代表星期日。
command:要執(zhí)行的命令,可以是系統(tǒng)命令,也可以是自己編寫的腳本文件
2. 特殊字符:
星號(*):代表所有可能的值,例如month字段如果是星號,則表示在滿足其它字段的制約條件后每月都執(zhí)行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”。
中杠(-):可以用整數(shù)之間的中杠表示一個整數(shù)范圍,例如“2-6”表示“2,3,4,5,6”。
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執(zhí)行一次。同時正斜線可以和星號一起使用,例搭空如*/10,如果用在minute字段,表示每十分鐘執(zhí)行一次。
3.運行crontab –e 編寫一條定時任務(wù) */5 * * * * /home/test.sh 在每5分鐘執(zhí)行一次test.sh腳本。
4.查詢當前用戶定時任務(wù)或刪除當前用戶定時任務(wù)
chkconfig –list crond查看是否開機自動啟動
chkconfig –level 35 crond on設(shè)置cond開機自動啟動
測試get請求
$ curl
2、測試post請求
$ curl -d “user=nickwolfe&password=12345”
我長用到的就這倆。
linux 在screen下定時執(zhí)行腳本
首先查看一下/etc/crontab文件:
$ cat /etc/crontab
SHELL=/bin/bash
PATH=/in:/bin:/usr/in:/usr/bin
肆如鄭MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
* * * root run-parts /etc/cron.daily
* * 0 root run-parts /etc/cron.weekly
* * root run-parts /etc/cron.monthly
前四行是有關(guān)設(shè)置cron任務(wù)運行的環(huán)境變量。SHELL變量的值指定系統(tǒng)使用的SHELL環(huán)境(該樣例為bash shell),PATH變量定義了執(zhí)行命令的路徑。Cron的輸出以電子郵件的形式發(fā)給MAILTO變量定義的用戶名。如果MAILTO變量定義為空字符串(MAILTO=””),電子郵件不會被發(fā)送。執(zhí)行命令或腳本時HOME變量可用來設(shè)置基目錄。
文件/etc/crontab中每行任務(wù)的描述格式如下:
minute hour day month dayofweek command
minute – 從0到59的整數(shù)
hour – 從0到23的整數(shù)
day – 從1到31的整數(shù) (必須是指定月份的有效日期)
month – 從1到12的整數(shù) (或如Jan或Feb簡寫的月份)
dayofweek – 從0到7的整數(shù),0或7用來描述周日 (或用Sun或Mon簡寫來表示)
command – 需要執(zhí)行的命令(可用as ls /proc >> /tmp/proc或 執(zhí)行自定義腳本的命令)
root表示以root用戶身份來運行
run-parts表示后面跟著的是一個文件夾,要執(zhí)行的是該文件夾下的所有腳本
對于以上各語句,星號(*)表示所有可用的值。例如*在指代month時表橡悄示每月執(zhí)行(需要符合其他限制條件)該命令。
整數(shù)間的連字號(-)表示整數(shù)裂頌列,例如1-4意思是整數(shù)1,2,3,4
指定數(shù)值由逗號分開。如:3,4,6,8表示這四個指定整數(shù)。
符號“/”指定步進設(shè)置?!?”表示步進值。如0-59/2定義每兩分鐘執(zhí)行一次。步進值也可用星號表示。如*/3用來運行每三個月份運行指定任務(wù)。
以“#”開頭的為注釋行,不會被執(zhí)行。
如果一個cron任務(wù)需要定期而不是按小時,天,周,月來執(zhí)行,則需要添加/etc/cron.d目錄。這個目錄下的所有文件和文件/etc/crontab語法相同,查看樣例:
# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo
* * mon cat /proc/meminfo >> /tmp/meminfo
# run custom scrīpt the first day of every month at 4:10AM
* * /root/scrīpts/backup.sh
除了root用戶之外的用戶可以執(zhí)行crontab配置計劃任務(wù)。所有用戶定義的crontab存儲在目錄/var/spool/cron下,任務(wù)會以創(chuàng)建者的身份被執(zhí)行。要以特定用戶創(chuàng)建一個crontab,先以該用戶登錄,執(zhí)行命令crontab -e,系統(tǒng)會啟動在VISUAL或者EDITOR中指定的的編輯軟件編輯crontab。文件內(nèi)容與/etc/crontab格式相同。示例如下:
0 3 * * * /home/dbbackup/db1backup.sh backup
0 4 * * * /home/dbbackup/db2backup.sh backup
表示每天3點執(zhí)行/home/dbbackup/db1backup.sh backup,4點執(zhí)行/home/dbbackup/db2backup.sh backup,如果是每五分鐘執(zhí)行一次可改為:
*/5 * * * * /home/dbbackup/db2backup.sh backup
當更改的crontab需要保存時,文件會保存在成如下文件/var/spool/cron/username。文件名會根據(jù)用戶名而不同。
cron服務(wù)會每分鐘檢查一次/etc/crontab、/etc/cron.d/、/var/spool/cron文件下的變更。如果發(fā)現(xiàn)變化,就會下載到存儲器中。因此,即使crontab文件改變了,程序也不需要重新啟動。推薦自定義的任務(wù)使用crontab -e命令添加,退出后用/etc/init.d/crond restart命令重啟crond進程,官方文件說不用重啟進程,但我遇到不重啟無法運行任務(wù)的情況。開始不知道/etc/crontab文件中的run-parts是什么意思,直接把命令按照/etc/crontab的格式加上總是無法運行,后來才知道run-parts是指后面跟著的是文件夾。
linux定時每五分鐘的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux定時每五分鐘,Linux任務(wù)調(diào)度:實現(xiàn)每五分鐘定時執(zhí)行,crontab定時任務(wù) 和linux請求接口,linux 在screen下定時執(zhí)行腳本的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)是成都專業(yè)網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計、SEO優(yōu)化、手機網(wǎng)站、小程序開發(fā)、APP開發(fā)公司等,多年經(jīng)驗沉淀,立志成為成都網(wǎng)站建設(shè)第一品牌!
分享標題:Linux任務(wù)調(diào)度:實現(xiàn)每五分鐘定時執(zhí)行(linux定時每五分鐘)
路徑分享:http://fisionsoft.com.cn/article/ccoiics.html


咨詢
建站咨詢
