linux 定時(shí)任務(wù)詳解
習(xí)慣了使用 windows 的計(jì)劃任務(wù),使用 linux 中的 crontab 管理定時(shí)任務(wù)時(shí)很不適應(yīng)。
所以把基本的用法總結(jié)如下。
創(chuàng)建一個(gè)簡(jiǎn)單的定時(shí)任務(wù)
每分鐘輸出一次當(dāng)前的時(shí)間,輸出到用戶家目錄下的 time.log 文件中。
$ crontab -e * * * * * echo `date` >> /home/xxx/time.log
crontab 程序的路徑為 /usr/bin/crontab。
每個(gè)用戶的定時(shí)任務(wù)可以在 /var/spool/cron/crontabs/ 目錄下查詢到。
需要使用root權(quán)限才能進(jìn)入這個(gè)目錄。每個(gè)以用戶名命名的文件中記錄著該用戶的定時(shí)任務(wù)。
注意,不要使用 vi 直接編輯這些文件。
cron 運(yùn)行的每一項(xiàng)工作都會(huì)被紀(jì)錄到 /var/log/cron 這個(gè)登錄檔中,但是 Ubuntu 默認(rèn)關(guān)閉了cron 的 log。
打開的方式為:打開 rsyslog 服務(wù)的配置文件
$ sudo vim /etc/rsyslog.d/50-default.conf
將下面一行中前面的注釋符去掉
cron.* /var/log/cron.log
重啟 rsyslog
$ sudo service rsyslog restart
現(xiàn)在就可以看到 /var/log/cron 文件了,查看該文件是解決定時(shí)任務(wù)出錯(cuò)的重要途徑。
控制用戶運(yùn)行定時(shí)任務(wù)
如果不想讓某個(gè)用戶運(yùn)行定時(shí)任務(wù),直接把他的賬號(hào)寫入到 /etc/cron.deny 文件中即可。注意,一行一個(gè)賬號(hào)。
當(dāng)然你也可以使用 /etc/cron.allow 文件來(lái)顯式的指定可以運(yùn)行定時(shí)任務(wù)的用戶的賬號(hào),并且 /etc/cron.allow 比 /etc/cron.deny 的優(yōu)先級(jí)要高。
但感覺有點(diǎn)亂,倒不如只使用其中的一個(gè)。
crontab 命令
-u :只有 root 才有權(quán)限執(zhí)行這個(gè)任務(wù),也就是幫其他使用者創(chuàng)建/移除 crontab 定時(shí)任務(wù)
-e :編輯 crontab 的內(nèi)容
-l :顯示 crontab 的內(nèi)容
-r :移除所有 crontab 的內(nèi)容,若僅要移除某一項(xiàng),請(qǐng)用 -e 編輯
時(shí)間格式
分鐘 小時(shí) 日期 月份 周 命令
數(shù)字范圍 0-59 0-23 1-31 1-12 0-7 echo "hello" >> abc.log
特殊字符的含義
*(星號(hào)) 代表任何時(shí)刻都接受。
,(逗號(hào)) 代表分隔時(shí)段的意思。
-(減號(hào)) 代表一段時(shí)間范圍內(nèi)。
/n(斜線) 那個(gè) n 代表數(shù)字,每隔 n 單位間隔。
Case1: 每年的五月一日 10:5 執(zhí)行一次
5 10 1 5 * command
Case2: 每天的三點(diǎn),六點(diǎn)各執(zhí)行一次
0 3,6 * * * command #注意這里使用了逗號(hào)
Case3: 每天的8:20, 9:20,10:20,11:20各執(zhí)行一次
20 8-11 * * * command #注意這里使用了減號(hào)
Case4: 每五分鐘執(zhí)行一次
*/5 * * * * command #注意這里使用了/n
Case5: 每周一十點(diǎn)執(zhí)行一次
* 10 * * 1 command
配置系統(tǒng)級(jí)別的定時(shí)任務(wù)
crontab -e 是用來(lái)設(shè)置用戶級(jí)別的定時(shí)任務(wù)的。如果要設(shè)置系統(tǒng)級(jí)別的定時(shí)任務(wù)該怎么辦呢?
答案是直接使用 root 權(quán)限編輯系統(tǒng)級(jí)別定時(shí)任務(wù)的配置文件: /etc/crontab。
比如直接用 vim 打開編輯:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- linux定時(shí)任務(wù)基礎(chǔ)命令介紹(14)
- Linux定時(shí)任務(wù)Crontab詳解(推薦)
- 詳解使用python crontab設(shè)置linux定時(shí)任務(wù)
- Linux crontab定時(shí)任務(wù)配置方法(詳解)
- Linux中使用crontab命令啟用自定義定時(shí)任務(wù)實(shí)例
- Linux使用定時(shí)任務(wù)每周定時(shí)清理45天以前日志
- 詳細(xì)介紹Linux的定時(shí)任務(wù)crontab
- linux使用crontab實(shí)現(xiàn)PHP執(zhí)行計(jì)劃定時(shí)任務(wù)
- 深入解析Linux下的定時(shí)任務(wù)
- linux中定時(shí)任務(wù)crond命令使用方法
相關(guān)文章
Linux系統(tǒng)下如何運(yùn)行.sh文件的實(shí)現(xiàn)
這篇文章主要介紹了Linux系統(tǒng)下如何運(yùn)行.sh文件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Centos7運(yùn)用/dev/shm進(jìn)行網(wǎng)站優(yōu)化
這篇文章主要介紹了LINUX中Centos7運(yùn)用/dev/shm進(jìn)行網(wǎng)站優(yōu)化相關(guān)知識(shí)點(diǎn),對(duì)此有興趣的朋友參考學(xué)習(xí)下。2018-03-03