每天一個Linux命令—— crontab

來源:互聯網
上載者:User

標籤:意義   bash   mail   config   login   表示   service   時間設定   level   

一、簡介

 1、 Linux中有許多周期性執行的任務,這些任務由cron守護進程完成,因此cron這個系統服務是預設啟動的。

 2、Linux中調度任務分為兩類:系統任務調度和使用者任務調度,系統任務調度即系統周期性所要執行的工作。/etc/crontab檔案是系統任務調度的設定檔。

 3、使用者任務調度就是使用者要周期性執行的工作,可用crontab命令定製自己的計劃任務,使用者定義的計劃任務都儲存在/var/spool/cron目錄中,檔案名稱與使用者名稱一致

 4、使用者任務調度使用者許可權:

  1)、/etc/cron.deny , 檔案所列使用者不允許使用crontab命令

  2)、/etc/cron.allow , 檔案所列使用者允許使用crontab命令

  3)、/var/spool/cron/ , 所有使用者crontab檔案存放的目錄,檔案名稱同使用者名稱

二、crontab  定時任務命令詳解

cat /etc/crontab

SHELL=/bin/bash  #SHELL變數指定系統使用哪種shell,這裡使用bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin  #PATH變數指定系統執行命令的路徑

MAILTO=root  #MAILTO變數指定任務執行資訊發送給誰

HOME=/  #HOME變數指定執行命令或指令碼時使用的主目錄

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed

1、前5個欄位為時間設定段,第6個欄位是所需執行的命令段

minute hour day month week command

分鐘  小時  日期  月份    星期幾    要執行的命令或指令碼

每個欄位可使用的特殊字元代表意義:

*  表示所有可能的值,如day為*,則表示在滿足其他欄位制約的條件後每天都執行該命令或指令碼;

,  可用逗號隔開的值指定一個列表範圍

-  可以用整數之間的中杠表示整數範圍

/  用來指定時間的間隔,如"0-23/2"表示在0點~23點,每兩小時執行一次,如hour欄位"*/3"表示每3小時執行一次

2、crond服務

安裝crond命令:yum install crontabs

服務作業命令:

/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
/sbin/service crond status //啟動服務

查看開機啟動服務:ntsysv

加入開機啟動:chkconfig -level 35 crond on

3、crontab命令詳解

crontab命令可以在指定時間執行指定的命令或者shell指令碼。

crontab --help
usage: crontab [-u user] file
 crontab [-u user] [ -e | -l | -r ]
  (default operation is replace, per 1003.2)
 -e (edit user‘s crontab)
 -l (list user‘s crontab)
 -r (delete user‘s crontab)
 -i (prompt before deleting user‘s crontab)
 -s (selinux context)

-u user  :  設定某個使用者的crontab服務,如"-u root" 表示設定root使用者的crontab服務

-e  :  編輯某個使用者的crontab檔案,不使用-u指定則表示編輯目前使用者的crontab檔案,下同

-l  :  顯示某個使用者的crontab檔案內容

-r   :  從/var/spool/cron/目錄中刪除某個使用者的crontab檔案

-i  :  刪除某使用者的crontabz檔案前提示使用者

-s  :  selinux內容

4、舉例:

每周一,三,五的下午3:00系統進入維護狀態,重新啟動系統。

 0 15 * * 1,3,5 shutdown -r +5

 

每小時的1分執行使用者目錄下的bin/account這個指令:

1 * * * * bin/account

 

每天早晨三點二十分執行使用者目錄下如下所示的兩個指令(每個指令以;分隔):

20 3 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)

 

每年的一月和四月,4號到9號的3點12分和3點55分執行/bin/rm -f expire.1st這個指令,並把結果添加在mm.txt這個檔案之後(mm.txt檔案位於使用者自己的目錄位置)。

12,55 3 5-9 1,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt

 

每天一個Linux命令—— crontab

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.