本人搜羅各大網(wǎng)站并測試了相關(guān)定時(shí)任務(wù)的操作方便大家進(jìn)行查閱和操作。
1、cron介紹
我們經(jīng)常使用的是 crontab 命令是cron table的簡寫,它是cron的配置文件,也可以叫它作業(yè)列表,我們可以在以下文件夾內(nèi)找到相關(guān)配置文件。
1.1、cron相關(guān)目錄
- /var/spool/cron/ 目錄下存放的是每個(gè)用戶包括root的crontab任務(wù),每個(gè)任務(wù)以創(chuàng)建者的名字命名
- /etc/crontab 這個(gè)文件負(fù)責(zé)調(diào)度各種管理和維護(hù)任務(wù)。
- /etc/cron.d/ 這個(gè)目錄用來存放任何要執(zhí)行的crontab文件或腳本。
- 我們還可以把腳本放在 /etc/cron.hourly、 /etc/cron.daily、 /etc/cron.weekly、 /etc/cron.monthly 目錄中,讓它每小時(shí)、每天、每個(gè)星期、每個(gè)月執(zhí)行一次。
1.2、crontab的常用命令
- crontab [-u username] //省略用戶表表示操作當(dāng)前用戶的crontab
- crontab [-u username] -e //編輯工作表 )
- crontab [-u username] -l //列出工作表里的命令 )
- crontab [-u username] -r //刪除工作作 )
1.3、編寫規(guī)范
1、相關(guān)每個(gè)位置的參數(shù)如下圖,另外還有備注詳情
備注:
1) * 表示任意的(分、時(shí)、日、月、周)時(shí)間都執(zhí)行
2) - 表示一個(gè)時(shí)間范圍段, 如5-7點(diǎn)
3) , 表示分隔時(shí)段, 如6,0,4表示周六、日、四
4) /1 表示每隔n單位時(shí)間, 如*/10 每10分鐘
2、設(shè)置定時(shí)任務(wù)
2.1、全局設(shè)置定時(shí)任務(wù) crontab ---任務(wù)是鏈接、curl或者寫入文件時(shí)
(1)執(zhí)行命令 crontab -e
(2)寫入定時(shí)任務(wù)
如果定時(shí)跑的任務(wù)是鏈接
*/1 * * * * /usr/local/curl(你自己的curl路徑) www.baidu.com >/dev/null 2>$1
如果需要內(nèi)容寫入文件中
*/1 * * * * echo "hello" >> abc.log
另外我還要普及下幾點(diǎn)
- 標(biāo)準(zhǔn)輸入0 從鍵盤獲得輸入 /proc/self/fd/0
- 標(biāo)準(zhǔn)輸出1 輸出到屏幕(即控制臺) /proc/self/fd/1
- 錯(cuò)誤輸出2 輸出到屏幕(即控制臺) /proc/self/fd/2
- /dev/null 代表linux的空設(shè)備文件,所有往這個(gè)文件里面寫入的內(nèi)容都會丟失,俗稱“黑洞”
- >/dev/null 意思就是把錯(cuò)誤輸出到“黑洞”
- >/dev/null 2>&1 默認(rèn)情況是1,也就是等同于 1>/dev/null 2>&1 。意思就是把標(biāo)準(zhǔn)輸出重定向到“黑洞”,還把錯(cuò)誤輸出2重定向到標(biāo)準(zhǔn)輸出1,也就是標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出都進(jìn)了“黑洞”
- 2>&1 >/dev/null 意思就是把錯(cuò)誤輸出2重定向到標(biāo)準(zhǔn)出書1,也就是屏幕,標(biāo)準(zhǔn)輸出進(jìn)了“黑洞”,也就是標(biāo)準(zhǔn)輸出進(jìn)了黑洞,錯(cuò)誤輸出打印到屏幕
- 關(guān)于這里”&”的作用,我們可以這么理解2>/dev/null重定向到文件,那么2>&1,這里如果去掉了&就是把錯(cuò)誤輸出給了文件1了,用了&是表明1是標(biāo)準(zhǔn)輸出。
(3)保存定時(shí)任務(wù)
- 按 i 進(jìn)行插入操作,寫入定時(shí)任務(wù)
- 按 Esc 退出并輸入 :wq ,再按 Ctrl + C即可保存成功。
2.2、.sh 方法實(shí)現(xiàn)
(1)創(chuàng)建Shell腳本
- 在項(xiàng)目中創(chuàng)建一個(gè)以 .sh 后綴的文件
- 在該目錄下給這個(gè)shell文件添加足夠的權(quán)限
chmod -R 777 你創(chuàng)建文件名
(2)將Shell腳本寫入定時(shí)任務(wù)中
將對應(yīng)的shell文件寫入定時(shí)任務(wù)
*/1 * * * * 你的.sh得文件絕對路徑 >/dev/null 2>$1
將對應(yīng)的shell文件執(zhí)行定時(shí)任務(wù)時(shí)寫入日志
*/1 * * * * 你的.sh得文件絕對路徑>> a.log >/dev/null 2>$1
(3)重啟crond
(4)查看是否寫入項(xiàng)目中
感謝大家的觀賞,如果有什么問題請?jiān)诹粞詤^(qū)留言。
總結(jié)
到此這篇關(guān)于linux定時(shí)任務(wù)的一些相關(guān)操作的文章就介紹到這了,更多相關(guān)linux定時(shí)任務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!