日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计划任务工具 cron 的配置和说明

發布時間:2024/4/15 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计划任务工具 cron 的配置和说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:?北南南北
來自:?LinuxSir.Org
摘要:?Linux操作系統中,計劃任務通常由cron來承擔,了解或掌握cron,能為我們管理服務器帶來更多的便利,也能省卻更多的時間。本文也舉了一些簡單明了的例子,為了讓新手上路方便;

目錄

    • ?
        • ?2.1.1 在Redhat 或 Fedora等RPM包管理的系統的安裝;
            • ?

          2.1.2 在Slackware系統中的安裝;
            • ?

          2.1.3 cron 的開啟、停止、重新啟動方法;2.2.1 全局性配置文件;
            • ?

          2.2.2 cron 配置計劃任務的書寫格式?
          2.2.3 關于同一時間,同時執行多個任務的定義方法;
            • ?

          2.2.4 對于用戶自身的cron 配置文件的說明;
      2.1 cron 的安裝和啟動;

      2.2 cron 配置文件;

1、計劃任務概說;
    • ?

2、cron;

3、計劃任務的應用范圍;?
4、關于本文;?
5、后記;?
6、參考文檔;?
7、相關文檔;


++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++


1、計劃任務概說;

計劃任務,是任務在約定的時間執行已經計劃好的工作,這是表面的意思。在Linux中,我們經常用到 crond 服務器來完成這項工作。cron服務器可以根據配置文件約定的時間來執行特定的作務。比如我們可以在配置文件中約定每天早上4點,對httpd 服務器重新啟動,這就是一個計劃任務;

下面我們先來說說cron;


2、cron;

在Linux系統中,計劃任務一般是由cron承擔,我們可以把cron設置為開機時自動啟動。cron啟動后,它會讀取它的所有配置文件(全局性 配置文件/etc/crontab,以及每個用戶的計劃任務配置文件),然后cron會根據命令和執行時間來按時來調用度工作任務。


2.1 cron 的安裝和啟動;

在一般情況下,cron都是系統默認安裝的,我們要學會查看軟件包是否已經安裝;


2.1.1 在Redhat 或 Fedora等RPM包管理的系統的安裝;

判斷系統是否已經安裝cron相關的包

Fedora 5.0 系統的情況;

其它版本的Fedora及Redhat的系統和這相似;

[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


2.1.2 在Slackware系統中的安裝;

在Slackware中cron軟件包是 dcron,您可以在光盤中找出來安裝它;

查看是否已經安裝了dcron軟件包,您可以這樣查看。在這里能列出軟件包詳細的安裝情況;

[root@localhost ~]# more /var/adm/packages/dcron*

如果沒有安裝,請用下面的命令來安裝。在第一張安裝盤中找出dcron軟件包;

[root@localhost ~]# installpkg dcron*.tgz


2.1.3 cron 的開啟、停止、重新啟動方法;

cron配置文件被修改后,想讓新文件生效,必須重新crond服務器,有兩種方法可供選擇;


第一種 在Fedora或Redhat 等以RPM包管理的系統中;

[root@localhost ~]# /etc/init.d/crond start
[root@localhost ~]# /etc/init.d/crond stop
[root@localhost ~]# /etc/init.d/crond restart

如果想在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;


2.2 cron 配置文件;

cron 是一個服務器程序,我們都知道Linux的服務器的配置,大多是通過配置文件來完成的,cron自然也不例外,在Redhat/Fedora 等系統中它的全局性配置文件是/etc/crontab;在Slackware系統中,全局性文件是/var/spool/cron/crontabs /root 。每個用戶也有自己的cron配置文件,我們可以通過crontab -e 來編輯它;


2.2.1 全局性配置文件;

下面是一個全局性的配置文件例子,以Fedora Core 5為例;

[root@localhost ~]# more /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
1 * * * * root run-parts /etc/cron.hourly
#
2 4 * * * root run-parts /etc/cron.daily
#
22 4 * * 7 root run-parts /etc/cron.weekly
#
42 4 1 * * root run-parts /etc/cron.monthly
#
0,5,10,15,20,25,30,35,40,45,50,55 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg

對于全局性配置文件,我們要用root權限來更改,一般是通過crontab -e 來修改。但有時也并不一定是這樣的,比如Fedora Core 5 如果通過crontab -e 修改的是root用戶的cron 配置文件。所以我們要在Fedora Core 5中修改全局性配置文件可以用vi 編輯器來修改。vi的用法請參考:《文件編輯器 vi》

在全局性配置文件中,定義了可執行命令的路徑環境變量,所用SHELL類型的定義等,這些大多不用修改;我們經常添加的是計劃任務或修改任務執行的時間等;

在全局性配置文件中,我們發現有類似這些行;

1 * * * * root run-parts /etc/cron.hourly? 注:表示每個小時的第一分鐘,開始執行/etc/hourly目錄下的可執行程序或腳本;
2 4 * * * root run-parts /etc/cron.daily? 注:表示每天的4點2分,開始執行/etc/cron.daily目錄下的可執行程序或腳本;
22 4 * * 7 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目錄下的可執行程序或腳本;

這些行是用來在同一時間批量執行任務的,我們在以后的例子中獨立出來解說,在這里只是讓大家心中有數;


2.2.2 cron 配置計劃任務的書寫格式

分鐘 小時 日? 月? 周?? [用戶名]? 命令

說明:

第一段應該定義的是:分鐘,表示每個小時的第幾分鐘來執行。范圍是從0-59 第二段應該定義的是:小時,表示從第幾個小時來執行,范圍是從0-23 第三段應該定義的是:日期,表示從每個月的第幾天執行,范圍從1-31 第四段應該定義的是:月,表示每年的第幾個月來執行,范圍從1-12 第五段應該定義的是:周,表示每周的第幾天執行,范圍從0-6,其中 0表示星期日。 每六段應該定義的是:用戶名,也就是執行程序要通過哪個用戶來執行,這個一般可以省略; 第七段應該定義的是:執行的命令和參數。

注:?其中用戶名可是省略,用戶名定義的是程序用哪個用戶來執行,比如mysql服務器,我們可以定義成以mysql用戶來啟動、停止、重新 啟動,這時要寫上用戶名;不過對于cron來說意義不是太大,因為每個用戶都有自己的cron配置文件。有些程序的啟動必須用到root用戶,這時我們就 可以修改root用戶的cron配置文件就行了。在每個用戶的配置文件中,不必指定用戶名。

我們可以把計劃任務寫在全局性配置文件中,如果您想把一個計劃放入全局性配置文件中,就得改發行版所對應的cron全局配置文件,比如Fedora 5的全局性配置文件是/etc/crontab文件;

每個用戶也能定義自己的cron配置文件,用crontab -e 命令來定義;

舉一例:讓機器在每天8點30分重新啟動;

關于時間?格式中有7個字段。我們可以直接更改或者添加,當然這是系統任務調用。舉個例子,比如我在每天的早上8點30分重新啟動機器,就可以在
/etc/crontab中加入下面的兩句,第一句就是注釋了。以#號開始,后面寫一個自己能知道這是什么任務的備注;

# reboot OS
30 8 * * *? root /sbin/reboot

第一段應該定義的是:分鐘,表示每個小時的第幾分鐘來執行。范圍是從0-59
第二段應該定義的是:小時,表示從第幾個小時來執行,范圍是從0-23
第三段應該定義的是:日期,表示從每個月的第幾天執行,范圍從1-31
第四段應該定義的是:月,表示每年的第幾個月來執行,范圍從1-12
第五段應該定義的是:周,表示每周的第幾天執行,范圍從0-6,其中 0表示星期日。
每六段應該定義的是:用戶名,也就是執行程序要通過哪個用戶來執行,這個一般可以省略;
第七段應該定義的是:執行的命令和參數。

對比上面的例子就知道,30是不是分鐘??8是不是小時?如果有*代表的地方,表示全部,也就是說,每個月,每天,每星期都要執行。root 表示用root用戶執行,命令是/sbin/reboot ,也就是說,系統在每天 8點30分重新啟動;

我們可以把每天8點30分重新啟動的計劃任務寫入cron全局性配置文件中,也可以定義在root用戶自己的cron配置文件中。如果定義在 root自己的配置文件,請用root身份來執行 crontab -e 來修改配置文件;crontab -e 進入修改配置文件的過程,其實和vi的用法一樣,請參看vi 的用法:《文件編輯器 vi》

讓配置文件生效:?如果讓配置文件生效,還得重新啟動cron,切記,既然每個用戶下的cron配置文件修改后。也要重新啟動cron服務器。

在Fedora 和Redhat中,我們應該用;

[root@localhost ~]# /etc/init.d/crond restart

如果讓crond 在開機時運行,應該改變其運行級別;

[root@localhost ~]# chkconfig --levels 35 crond on

在Slackware中,如果開機自動運行;

查看/etc/rc.d/rc.M文件是否有如的行,如果沒有就加上,大多是有的;

# Start crond (Dillon's crond):
if [ -x /usr/sbin/crond ]; then
? /usr/sbin/crond -l10 >>/var/log/cron 2>&1
</cdoe>

<b>
如果想讓立即讓cron重啟生效,也可以用下面的辦法;
</b>

<code>
[root@localhost ~]# pgrep crond? 注:查看crond服務器是否運行;
2022
[root@localhost ~]# pkill crond 注:殺死crond;
[root@localhost ~]# pgrep crond 注:查看crond是否退出;
[root@localhost ~]# /usr/sbin/crond? 注:啟動crond;
[root@localhost ~]# pgrep crond? 注:查看crond 是否已經運行得起來了;
3883


2.2.3 關于同一時間,同時執行多個任務的定義方法;

我們在前面已經說過,在全局性配置文件中,有類似如下的段落;

1 * * * * root run-parts /etc/cron.hourly? 注:表示每個小時的第一分鐘,開始執行/etc/hourly目錄下的可執行程序或腳本;
2 4 * * * root run-parts /etc/cron.daily? 注:表示每天的4點2分,開始執行/etc/cron.daily目錄下的可執行程序或腳本;
22 4 * * 7 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目錄下的可執行程序或腳本;

舉例來說,我想在每天5點10分來重新啟動httpd 服務器,與此同時,我們也可以同時下載一個ISO文件。如果我們按書寫計劃任務的規則一條一條的來書寫,并添加到全局是有點麻煩。不如寫一個腳本放在 /etc/crond.daily目錄中。然后把其權限設置為755 (關于權限的設置,請參考:《Linux 文件和目錄的屬性》?)。

當然我們得改一改上面的 帶有/etc/cron.daily那行,改為如下;

10 5 * * * root run-parts /etc/cron.daily
</cdoe>

然后我們到/etc/crond.daily目錄中創建兩個文件,一個是用來重啟httpd服務器的,如下;

<code>
[root@localhost cron.daily]# touch httpd.sh
[root@localhost cron.daily]# chmod 755 httpd.sh
[root@localhost cron.daily]# echo "/etc/init.d/httpd restart" > httpd.sh
[root@localhost cron.daily]# more httpd.sh
/etc/init.d/httpd restart

如果我想在每天5點20分下載FC5的鏡像,可以再創建一個文件fc5down.sh

[root@localhost cron.daily]# touch fc5down.sh
[root@localhost cron.daily]# chmod 755 fc5down.sh
[root@localhost cron.daily]# echo "/usr/bin/wget? http://mirrors.kernel.org/fedora/core/5/i386/iso/FC-5-i386-DVD.iso" > fc5down.sh
[root@localhost cron.daily]# more fc5down.sh
/usr/bin/wget? http://mirrors.kernel.org/fedora/core/5/i386/iso/FC-5-i386-DVD.iso

然后我們重新啟動一下crond就行了;

[root@localhost cron.daily]# pkill crond
[root@localhost cron.daily]# prep crond
[root@localhost cron.daily]# crond&

注意:?我只是想說明一下,在同一時間 執行多個計劃任務的簡單用法,并不是有意教給您每天早上都下載FC5的映像。我舉這個例子是為了初學者了解這個功能。如果您有好多的任務在某一時刻執行, 那就自己寫腳本文件。放在/etc目錄下的cron.hourly 、cron.daily 、cron.weekly 、cron.monthly 目錄中。凡是放進這些目錄的可執行腳本,都能在約定的時間內準確執行。每個目錄有每個目錄的用途;


2.2.4 對于用戶自身的cron 配置文件的說明;

每個用戶都有自己的cron配置文件,通過crontab -e 就可以編輯,一般的情況下,在Fedora和Redhat的發行版,我們編輯好用戶的cron配置文件保存退出后,系統會自動就存放于/var /spool/cron/目錄中,文件以用戶名命名。在Slackware中是位于/var/spool/cron/crontabs/目錄中。其它的發 行版都差不多,有點類似。自己找找吧;查看用戶的計劃任務是crontab -l

crontab -e? 注:編輯用戶的cron配置文件;
crontab -l? 注:查看用戶的計劃任務;

比如我用beinan用戶來運行crontab -e ;

[beinan@localhost ~]$ id 注:判斷所用用戶身份;
uid=500(beinan) gid=500(beinan) groups=500(beinan)

[beinan@localhost ~]$ crontab -e 注:編輯用戶beinan的計劃任務;

我們在里面定義一個任務;

40 20 * * *? /usr/bin/wget? http://mirrors.kernel.org/fedora/core/5/i386/iso/FC-5-i386-DVD.iso

保存退出后,我們用下面的命令來查看beinan用戶的計劃任務;

[beinan@localhost ~]$ crontab -l

40 20 * * *? /usr/bin/wget? http://mirrors.kernel.org/fedora/core/5/i386/iso/FC-5-i386-DVD.iso

配置好后,我們還要重新啟動crond服務器,每個用戶cron配置文件的改動都得重新啟動crond服務器;前面已經說過了,這里省略;值得注意的是重啟crond服務器,需要root權限,您可以用su命令切換到root 用戶,然后再來重啟crond;


在Fedora或Redhat等以RPM包管理的發行版中;

[beinan@localhost ~]$ su
口令:
[root@localhost beinan]# /etc/init.d/crond restart
停止 crond:?????????????????????????????????????????????? [確定]
啟動 crond:?????????????????????????????????????????????? [確定]


也可以先殺死crond,再運行crond命令的辦法來啟動;

[root@localhost beinan]# pkill crond
[root@localhost beinan]# pgrep crond
[root@localhost beinan]# /usr/sbin/crond
[root@localhost beinan]# pgrep crond
6664


3、計劃任務的應用范圍;

計劃任務主要是讓系統自動完成一些工作。比如我們可以讓系統自動在某一時刻清理或備份httpd服務器的日志,然后重新啟動httpd服務器,這對網絡管理員來說是很重要的。也可以讓系統自動清空位于/tmp目錄的垃圾文件。

另外值得一提的是,LinuxSir.Org 有很多子站,每個子站都有RSS,能讓這些站點的RSS相互投遞,也是用cron來完成,比如是在早上4點左右開始執行這個任務。這是一個極為耗費資源的 過程,如果不是放在在線人少的時候,基本無法完成,所以只能放在早上進行。作為SIR的管理員,不可能每天早上4點起來點鼠標來完成這些事吧。所以最好的 辦法就是通過cron來自動運行,以在服務器最清閑的時候來完成這項工作;


4、關于本文;

本文是關于計劃任務的,本來想把有關計劃任務的內容都寫在一個文檔中,由于在寫文檔之前沒有準備好,所以只寫了一個cron ;本文可能會在近期調整一下,加入at等工具的用法等;


5、后記;

這篇后記不用寫了,我在本文檔修改期間寫了進程管理的文檔;

有一件趣事得提一提,昨天查看lumaqq.inuxsir.org 的 google 廣告收入,目前大約是70$左右,這個廣告帳戶,目前我是代luma兄管理的。現在看來廣告是比較少。。。。。從一月份到現在,半年快過去了,才僅僅 70$。


6、參考文檔;




7、相關文檔;



似乎有個錯誤?

在2.2.3 中22 4 * * 7 root run-parts /etc/cron.weekly 注:每年第7個周4點我22分,開始執行 /etc/cron.weekly目錄下的可執行程序或腳本;
似乎應該為:
22 4 * * 0 root run-parts /etc/cron.weekly 注:每年周日4點我22分,開始執行 /etc/cron.weekly目錄下的可執行程序或腳本;

re:似乎有個錯誤?

22 4 * * 7 中7的意思是每周的周日執行,不是每年的第七周吧?

ps:這里7和0的意思是相同的吧!

轉載于:https://www.cnblogs.com/qq78292959/archive/2012/01/16/2323631.html

總結

以上是生活随笔為你收集整理的计划任务工具 cron 的配置和说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成年人在线免费观看视频网站 | 免费毛片在线 | 久久久123| 亚洲欧美www | 婷婷中文在线 | 亚洲第8页 | 精品一二三四 | 国产欧美一区二区三区鸳鸯浴 | 欧美日韩一区二区在线 | 男人av资源网 | 涩涩99| 欧美午夜精品久久久久久蜜 | 欧美三级韩国三级日本三斤在线观看 | 2021天天干| 亚洲av无码精品色午夜 | 少妇人妻丰满做爰xxx | 男女操操视频 | 农村妇女愉情三级 | 黄色污小说 | 日本乱码一区二区 | 久久国产精品一区二区三区 | 亚洲精品一区二区三区四区乱码 | 99久久久无码国产精品性色戒 | 杏导航aⅴ福利网站 | 国产尻逼视频 | 国产伦精品一区二区三区视频孕妇 | 在线aa| 污漫网站| 美女在线观看视频 | 亚洲av永久无码精品国产精品 | 国产精品爽爽久久 | 日日撸夜夜撸 | 91成人免费看 | 国产精品久久网站 | 99re这里有精品 | 亚洲欧美在线观看 | 亚洲高清免费 | 九九色在线 | 亚洲精品乱码久久 | 国产福利一区视频 | 国产高清中文字幕 | 亚洲aⅴ| av成人免费观看 | 欧美第一精品 | 国产白嫩美女无套久久 | 亚洲91网 | 性欧美lx╳lx╳ | 丁香婷婷综合网 | 午夜色av| 五月婷婷天 | 国产又粗又猛又黄又爽的视频 | 日本一级免费视频 | 欧美成本人视频 | 黑人操bb| 国产美女视频免费观看下载软件 | 成人在线观看免费爱爱 | 在线观看精品 | 国产一区在线观看视频 | 亚洲精品第五页 | 欧美性受xxxx狂喷水 | 欧美一区二区三区在线观看视频 | 亚洲 激情 | 国产卡一卡二在线 | 一区二区三区四区精品视频 | 国产综合精品久久久久成人影 | 亚洲第一视频 | 伊人国产在线观看 | 久草日韩| 中文字幕人妻一区二区三区视频 | 狠狠干夜夜草 | 国产精品久久午夜夜伦鲁鲁 | 国语对白清晰刺激对白 | 欧美黄视频在线观看 | 久草热在线观看 | 七仙女欲春2一级裸体片 | av丝袜在线观看 | 狠狠撸在线观看 | 另类一区二区三区 | 久久嫩草精品久久久久 | 91精品啪 | 国产又粗又猛又爽 | 成人午夜在线播放 | 同性色老头性xxxx老头 | 我的好妈妈在线观看 | 依人成人 | 久久澡 | 日本中文字幕高清 | 国产毛片视频网站 | 久久精品99久久 | 国产农村妇女毛片精品久久麻豆 | 亚洲iv一区二区三区 | 日韩毛片在线播放 | 亚洲私人网站 | 性一级视频 | 黄色网页免费 | 国产欧美一区二区精品性色 | 久久亚洲AV成人无码国产野外 | 成人在线观看小视频 | 中文字幕第七页 |