linux 计划任务 实例,计划任务 cron 的配置和实例
1、計劃任務概說;
計劃任務,是任務在約定的時間執行已經計劃好的工作,這是表面的意思。在Linux中,我們經常用到 crond
服務器來完成這項工作。cron服務器可以根據配置文件約定的時間來執行特定的作務。比如我們可以在配置文件中約定每天早上4點,對httpd
服務器重新啟動,這就是一個計劃任務;
下面我們先來說說cron;
在Linux系統中,計劃任務一般是由cron承擔,我們可以把cron設置為開機時自動啟動。cron啟動后,它會讀取它的所有配置文件(全局性配置文件/etc/crontab,以及每個用戶的計劃任務配置文件),然后cron會根據命令和執行時間來按時來調用度工作任務。
2 cron
的安裝和啟動
在一般情況下,cron都是系統默認安裝的,我們要學會查看軟件包是否已經安裝:
查看是否安裝:
[root@localhost ~]# rpm -qa |grep cron
vixie-cron-4.1-54.FC5
anacron-2.3-36.1
crontabs-1.10-7.1
其中vixie-cron軟件包是cron的主程序,您可以通過下面的命令來了解它,其它軟件包同理;
[root@localhost
beinan]# rpm -ql vixie-cron
crontabs 軟件包是用來安裝、卸裝、或列舉用來驅動 cron 守護進程的表格的程序。cron 守護進程檢查
crontab
文件來查看某個指定命令被調度執行的時間。如果命令已經調度,守護進程就會執行它們。了解crontabs軟件包都安裝了些什么,應該用下面的命令;
[root@localhost
beinan]# rpm -ql?crontabs
如果沒有安裝,可以從光盤中找出文件名帶有cron字樣的軟件包來安裝。
安裝:
[root@localhost ~]# rpm -ivh
vixie-cron-4.1-54.FC5*
[root@localhost ~]# rpm -ivh crontabs*
也可以用yum 來在線安裝;
[root@localhost ~]# yum install vixie-cron
[root@localhost ~]# yum install crontabs
啟動:
第一種 在Fedora或Redhat 等以RPM包管理的系統中:
[root@localhost ~]# /etc/init.d/crond start
[root@localhost ~]# /etc/init.d/crond stop
[root@localhost ~]# /etc/init.d/crond restart
或者:
啟動cron服務 /sbin/service crond start
停止服務 /sbin/service crond stop
重啟服務 /sbin/service crond restart
重新加載 /sbin/service crond reload
如果想在Fedora 和 Redhat
或以這些發行版為基礎克隆的發行版,如果想自動開機運行,請用下面的辦法:默認是開機啟動的
[root@localhost ~]# chkconfig --levels 35
crond on
第二種:通用
[root@localhost ~]# pgrep crond?注:判斷crond
是否在運行;
[root@localhost ~]# pkill crond?注:殺掉正在運行中的crond;
[root@localhost ~]# pgrep crond?注:查看是否被殺掉了;
[root@localhost ~]# /usr/sbin/crond?注:運行crond;
3 配置cron
全局性配置文件是/etc/crontab
1.可以使用的用戶
默認情況下,系統中可以登陸的用戶,都可以使用crontab定義計劃任務。不過,可以通過下面兩個文件限制權限:
◆/etc/cron.allow:
將可以使用 crontab 的賬號寫入其中,若不在這個檔案內的使用者則不能使用 crontab;
◆/etc/cron.deny:
將不可以使用 crontab 的賬號寫入其中,若未記錄到這個檔案當中的使用者,就可以使用 crontab 。
2.直接編輯全局配置文件( 編輯他不要重啟服務)
默認是這樣子的:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly?注:表示每個小時的第一分鐘,開始執行/etc/hourly目錄下的可執行程序或腳本
02 4 * * * root run-parts
/etc/cron.daily?注:表示每天的4點2分,開始執行/etc/cron.daily目錄下的可執行程序或腳本;
22 4 * * 0 root run-parts /etc/cron.weekly?注:每年第7個周4點我22分,開始執行 /etc/cron.weekly目錄下的可執行程序或腳本;
42 4 1 * * root run-parts /etc/cron.monthly?注:每月第1天的4點42分,開始執行/etc/cron.monthly目錄下的可執行程序或腳本;
可以看到前面的五個參數的定義和直接編輯計劃任務是一樣的,增加了執行的用戶定義和run-parts參數。
run-parts后面跟的是目錄名稱,目錄是可以自己定義的。
如果你需要增加系統的計劃任務,只需要在對應的目錄添加執行文件即可
※同樣的,如果不需要使用目錄的方式,也可以使用如下的方式:
02 01 * *
*?root?/root/test.sh?也就是沒有了run-parts,后面就直接跟命令的絕對路徑
上面這幾個目錄這些行是用來在同一時間批量執行任務的,同一時間執行多個腳本,把這些腳本放到相應的目錄下,到時就會依次執行。
3 書寫格式
分鐘 小時
日?月?周?[用戶名]?命令
說明:
第一段應該定義的是:分鐘,表示每個小時的第幾分鐘來執行。范圍是從0-59
第二段應該定義的是:小時,表示從第幾個小時來執行,范圍是從0-23
第三段應該定義的是:日期,表示從每個月的第幾天執行,范圍從1-31
第四段應該定義的是:月,表示每年的第幾個月來執行,范圍從1-12
第五段應該定義的是:周,表示每周的第幾天執行,范圍從0-6,其中 0表示星期日。
每六段應該定義的是:用戶名,也就是執行程序要通過哪個用戶來執行,這個一般可以省略;
第七段應該定義的是:執行的命令和參數。
4 直接用命令編輯
cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些參數與說明:
crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
crontab -l //列出某個用戶cron服務的詳細內容
crontab -r //刪除沒個用戶的cron服務
crontab -e //編輯某個用戶的cron服務
比如說root查看自己的cron設置:crontab -u root -l
再例如,root想刪除fred的cron設置:crontab -u fred -r
5 幾個特殊符號的含義:
"*"代表取值范圍內的數字,?"/"代表"每",?"-"代表從某個數字到某個數字,?","分開幾個離散的數字
6 例子:
5?*?*?*?*?ls?指定每小時的第5分鐘執行一次ls命令
30?5?*?*?*?ls?指定每天的 5:30 執行ls命令
30?7?8?*?*?ls?指定每月8號的7:30分執行ls命令
30?5?8?6?*?ls?指定每年的6月8日5:30執行ls命令
30?6?*?*?0?ls?指定每星期日的6:30執行ls命令[注:0表示星期天,1表示星期1,以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]
30?3?10,20?*?*?ls?每月10號及20號的3:30執行ls命令[注:“,”用來連接多個不連續的時段]
25?8-11
*?*?*?ls?每天8-11點的第25分鐘執行ls命令[注:“-”用來連接連續的時段]
*/15?*?*?*?*?ls?每15分鐘執行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執行ls命令 ]
30?6?*/10?*?*?ls?每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls命令。 ]
每天7:50以root 身份執行/etc/cron.daily目錄中的所有可執行文件
50?7?*?*?*?root?run-parts?/etc/cron.daily?[
注:run-parts參數表示,執行后面目錄中的所有可執行文件。 ]
注意事項:
◆當編寫/etc/crontab文件的時候,不要漏了指定執行計劃任務的用戶,這是和直接用crontab -e編輯不同的。
◆某用戶(如root)用crontab
-e編輯的計劃任務存放在/var/spool/cron/root,這個文件下。但最好不要直接編輯他,因為crond執行的時候,會在/tmp目錄中建立需要的臨時文件,直接編輯會對此有影響,甚至出錯。
◆cron執行的每一項工作都會被紀錄到/var/log/cron這個日志文件中,可以從這個文件查看命令執行的狀態。
總結
以上是生活随笔為你收集整理的linux 计划任务 实例,计划任务 cron 的配置和实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 招商银行信用卡现金分期常见问题汇总
- 下一篇: linux链接 .o,Linux 链接概