前言
? ? ? ?CentOS計(jì)劃任務(wù)是一種在Linux系統(tǒng)上自動(dòng)執(zhí)行特定任務(wù)的功能。在CentOS系統(tǒng)上,我們可以使用crontab命令來(lái)創(chuàng)建和管理計(jì)劃任務(wù)。
以下是創(chuàng)建CentOS計(jì)劃任務(wù)的步驟:
? ? 1. 打開(kāi)終端并登錄到root賬戶;
? ? 2. 輸入命令“crontab -e”,打開(kāi)計(jì)劃任務(wù)編輯器;
? ? 3. 編輯器中有7個(gè)字段,分別表示分鐘、小時(shí)、日、月、周、要執(zhí)行的命令和命令參數(shù);
? ? 4. 每個(gè)字段可以使用*(代表任意值)或數(shù)字指定特定數(shù)值。例如,如果要在每天的上午9點(diǎn)執(zhí)行任務(wù),則可以使用“0 9 * * * 命令”;
? ? 5. 完成編輯后,按“ctrl+x”保存并退出編輯器。【注意:在計(jì)劃任務(wù)中使用的命令必須是系統(tǒng)中已安裝的可執(zhí)行文件或腳本?!?/p>
目錄
1 計(jì)劃任務(wù)概念解析
2 計(jì)劃任務(wù)分類
3 Crontab詳解
?3.1 安裝軟件
?3.2 啟動(dòng)服務(wù)
?3.3?編輯和保存crontab
? 3.3.1 第一部分:時(shí)間
? 3.3.2 第二部分:動(dòng)作
?3.4 查看計(jì)劃任務(wù)
?3.5 刪除計(jì)劃任務(wù)
?3.6 計(jì)劃任務(wù)的權(quán)限控制
【注意事項(xiàng)】
1 計(jì)劃任務(wù)概念解析
Linux系統(tǒng)的計(jì)劃任務(wù)是指可以定期執(zhí)行特定命令或程序的系統(tǒng)工具。計(jì)劃任務(wù)可以自動(dòng)執(zhí)行,無(wú)需用戶干預(yù),可用于定期備份、日志清理、定時(shí)任務(wù)等。在Linux中,最常用的計(jì)劃任務(wù)工具是crontab。
Crontab是Linux中的一種任務(wù)定時(shí)工具,可以幫助我們?cè)谥付〞r(shí)間自動(dòng)執(zhí)行特定的命令或腳本。Crontab可以在系統(tǒng)中設(shè)置多個(gè)定時(shí)任務(wù),每個(gè)任務(wù)可以設(shè)置不同的執(zhí)行時(shí)間、周期和執(zhí)行命令。
Crontab的語(yǔ)法非常簡(jiǎn)單,由6個(gè)字段組成,分別代表分鐘、小時(shí)、日期、月份、星期幾和要執(zhí)行的命令或腳本。(簡(jiǎn)稱:分時(shí)日月周)例如,下面的Crontab條目表示每天凌晨2點(diǎn)執(zhí)行一次backup.sh腳本:
0 2 * * * /home/user/backup.sh
Crontab的優(yōu)點(diǎn)是它可以自動(dòng)執(zhí)行和管理任務(wù),無(wú)需用戶干預(yù)。但是,Crontab也有一些注意事項(xiàng),例如它只能精確到分鐘級(jí)別,無(wú)法處理秒級(jí)別的任務(wù);另外,它需要用戶具備一定的Linux基礎(chǔ)知識(shí)才能使用。
2 計(jì)劃任務(wù)分類
Linux計(jì)劃任務(wù)可以分為系統(tǒng)級(jí)別和用戶級(jí)別兩種:
1. 系統(tǒng)級(jí)別計(jì)劃任務(wù):系統(tǒng)級(jí)別計(jì)劃任務(wù)通過(guò)修改系統(tǒng)的crontab文件來(lái)實(shí)現(xiàn),這些任務(wù)可以以root用戶身份運(yùn)行,并且可以在整個(gè)系統(tǒng)中執(zhí)行。這些任務(wù)通常用于系統(tǒng)級(jí)別操作,如備份、日志清理、系統(tǒng)更新等。
2. 用戶級(jí)別計(jì)劃任務(wù):用戶級(jí)別計(jì)劃任務(wù)可以由每個(gè)用戶創(chuàng)建自己的crontab文件來(lái)實(shí)現(xiàn),這些任務(wù)只能在該用戶的環(huán)境中運(yùn)行。這些任務(wù)通常用于用戶級(jí)別操作,如郵件提醒、定期備份等。
此外,Linux計(jì)劃任務(wù)還可以按照?qǐng)?zhí)行方式分為以下兩種:
1. 定時(shí)任務(wù):定時(shí)任務(wù)是指在一定時(shí)間間隔內(nèi)周期性執(zhí)行的任務(wù),例如每天、每周或每月執(zhí)行一次備份操作。
2. 周期任務(wù):周期任務(wù)是指在特定日期或時(shí)間執(zhí)行的任務(wù),例如在某個(gè)具體時(shí)間點(diǎn)執(zhí)行特定操作。
3 Crontab詳解
【系統(tǒng)默認(rèn)安裝并啟動(dòng)Crontab的,如果沒(méi)有,根據(jù)如下步驟逐個(gè)做;如果有,請(qǐng)直接跳轉(zhuǎn)到3.3】
?3.1 安裝軟件
使用“yum -y install crontabs”命令安裝。
yum -y install crontabs
?3.2 啟動(dòng)服務(wù)
在Linux系統(tǒng)中,并沒(méi)有專門的crontab服務(wù)需要啟動(dòng)。crontab是Linux系統(tǒng)內(nèi)置的定時(shí)任務(wù)工具,在啟動(dòng)系統(tǒng)時(shí)就已經(jīng)加載并啟用了。如果你想確認(rèn)crontab是否已經(jīng)啟用,可以使用以下命令:
systemctl status crond.service
如果crontab正在運(yùn)行,你會(huì)看到以下內(nèi)容的輸出:
如果crontab沒(méi)有啟動(dòng),你可以使用以下命令來(lái)啟動(dòng)crontab:
systemctl start crond.service
如果你想在每次系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)crontab,可以使用以下命令:
systemctl enable crond.service
這樣,crontab服務(wù)就會(huì)在每次系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng),無(wú)需手動(dòng)啟動(dòng)。
?3.3?編輯和保存crontab
要編輯crontab,可以使用以下命令:?
crontab -e
這會(huì)打開(kāi)一個(gè)文本編輯器,你可以在里面輸入要執(zhí)行的命令或腳本以及相關(guān)的時(shí)間和執(zhí)行頻率。編輯完成后,可以點(diǎn)擊“ESC”鍵輸入“:wq”保存并退出。
【編輯內(nèi)容如下】
? 3.3.1 第一部分:時(shí)間
分 |
時(shí) |
日 |
月 |
周 |
|
范圍 |
0~59 |
0~23 |
1~31 |
1~12 |
1~7 |
上面的時(shí)間范圍可以查看man手冊(cè):0
man 5 crontab
“man 5 crontab”
是一個(gè)Linux系統(tǒng)中的手冊(cè)頁(yè)命令,可以幫助用戶了解crontab文件的格式和內(nèi)容,以及如何編輯和管理crontab文件。
crontab任務(wù)的時(shí)間格式如下:
* * * * * command
| | | | | ----- Day of the week (0 - 7) (Sunday is both 0 and 7)
| | | | ------- Month (1 - 12)
| | | --------- Day of the month (1 - 31)
| | ----------- Hour (0 - 23)
| ------------- Minute (0 - 59)
各種時(shí)間寫(xiě)法舉例:
0 * * * *????????每個(gè)小時(shí)的整點(diǎn)?
5 10 * * *? ? ? ? 每天的十點(diǎn)五分? ? ? ? ? ? ? ? *表示每...? ? ? ? ? ? ? ? ? ? ?
1,5,9 * * * *? ? ? ? 1,5,9表示:一、五、九分鐘? ? ? ? ? ? ? ? ,表示取不同的范圍點(diǎn)
8-12 * * * *? ? ? ? 8-12表示八到十二分鐘? ? ? ? ? ? ? ? -表示范圍
*/5 * * * *? ? ? ? */5表示每隔5分鐘
# 每天早上6點(diǎn)運(yùn)行程序
0 6 * * * /path/to/program
# 每周五晚上9點(diǎn)半備份數(shù)據(jù)庫(kù)
30 21 * * 5 /path/to/backup_script.sh
# 每小時(shí)運(yùn)行一次清理腳本
0 * * * * /path/to/clean_script.sh
? 3.3.2 第二部分:動(dòng)作
把上面規(guī)定的時(shí)間、要執(zhí)行的命令寫(xiě)進(jìn)去,當(dāng)然包括腳本(最常用),命令最好要寫(xiě)絕對(duì)路徑。
最終我們使用“crontab -e”命令編寫(xiě)如下命令。
*/10 * * * * /usr/bin/touch /tmp/1.txt
最后編寫(xiě)成功后,保存退出即可。
?3.4 查看計(jì)劃任務(wù)
方法一:使用“crontab -l”命令。
crontab -l
方法二:使用“cat /var/spool/cron/root”命令。
cat /var/spool/cron/root
?3.5 刪除計(jì)劃任務(wù)
使用“crontab -r”命令刪除計(jì)劃任務(wù)。
【使用這條命令將刪除所有的定時(shí)任務(wù),謹(jǐn)慎使用!】
crontab -r
一般我們刪除計(jì)劃任務(wù)使用“crontab-e”命令進(jìn)去刪除所想刪除的任務(wù)就好。
我們刪除剛才所編輯的計(jì)劃任務(wù),然后使用“crontab -e”查看,發(fā)現(xiàn)顯示“no crontab for root
”即表示我們刪除成功!
?3.6 計(jì)劃任務(wù)的權(quán)限控制
在CentOS系統(tǒng)中,Cron服務(wù)的功能是在超級(jí)用戶root的權(quán)限下運(yùn)行的,因此,只有root用戶才能夠控制和編輯CentOS系統(tǒng)的計(jì)劃任務(wù)。
當(dāng)然,如果你想讓其他用戶也能夠控制和編輯計(jì)劃任務(wù),可以將他們添加到“crontab”或“cron.allow”文件中。具體步驟如下:
(1)創(chuàng)建“cron.allow”文件,如果該文件不存在的話。可以使用以下命令進(jìn)行創(chuàng)建:
touch /etc/cron.allow
(2)向“cron.allow”文件中添加允許控制計(jì)劃任務(wù)的用戶名。例如,如果你想允許“user1”和“user2”控制計(jì)劃任務(wù),可以使用以下命令:
echo "user1" >> /etc/cron.allow
echo "user2" >> /etc/cron.allow
(3)保存“cron.allow”文件以后,運(yùn)行以下命令重啟Cron服務(wù):
systemctl restart crond
這樣,用戶“user1”和“user2”就可以通過(guò)“crontab -e”命令來(lái)編輯和控制計(jì)劃任務(wù)了。
?。?!需要注意的是,如果同時(shí)存在“cron.allow”和“cron.deny”文件時(shí),只有在“cron.allow”文件中列出的用戶才能夠控制和編輯計(jì)劃任務(wù)。因此,在安全性方面,建議只使用“cron.allow”來(lái)控制用戶的權(quán)限。
【注意事項(xiàng)】
1.crontab的時(shí)間是按照系統(tǒng)時(shí)間執(zhí)行的,當(dāng)系統(tǒng)時(shí)間出現(xiàn)變化時(shí),crontab的執(zhí)行時(shí)間可能會(huì)受到影響??梢允褂谩?span style="color:#fe2c24;">date”命令查看系統(tǒng)時(shí)間。
2.crontab的執(zhí)行結(jié)果會(huì)輸出到標(biāo)準(zhǔn)輸出,可以使用重定向或者管道符將結(jié)果輸出到指定的文件中。
3.crontab任務(wù)的執(zhí)行權(quán)限和環(huán)境變量需要與執(zhí)行用戶匹配,否則任務(wù)可能無(wú)法執(zhí)行或者產(chǎn)生不確定的結(jié)果。
4.要在crontab中使用環(huán)境變量,需要先定義環(huán)境變量在crontab中。
5.crontab的執(zhí)行頻率最好不要太高,以免占用過(guò)多系統(tǒng)資源。
?
創(chuàng)作不易,給個(gè)三連吧~文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-770536.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-770536.html
到了這里,關(guān)于CentOS系統(tǒng)計(jì)劃任務(wù)Crontab的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!