Linux中計划任務、周期性任務設置


Linux中計划任務、周期性任務設置

計划任務:指在未來的特定時間里,執行一次某一特定任務。當然,如果同一任務需要在不同時間點執行執行兩次、三次或多次,可以視為多個一次看待。

周期性任務:指某一任務需要周期性的執行。周期性可以是以分、時、天等為單位,但又不限於這些單位。

 

常用於執行計划任務的命令——at, batch, 與周期性任務相關的的命令crontabs。

1.at命令和batch命令的區別。

  at命令旨在特定的之間執行任務;batch命令設置的任務由系統選擇空閑時間去執行,空閑時間默認為cpu利用率小於0.8的時候

2.at命令 

格式  
    at [option] TIME

選項

-l     atq命令的別名,顯示用戶的計划任務   
-d     atrm命令的別名,清空計划任務
-c     查看特定的計划任務
-f FILE   從文件中讀取計划任務命令 

TIME,有如下幾種格式
   
 HH:MM [YYYY-mm-dd]
    noon, midnight, teatime
    tomorrow
    now+#{minutes,hours,days, weeks}

注:batch命令使用方法和at類似,這里不再贅述
 

3. crontabs命令

a. 與cron服務相關的程序包有三個:

  cronie:主程序包,提供crond守護進程及相關輔助工具

  cronie-anacron:cronie的補充程序,用於監控cronie任務執行

  crontabs: 包含CentOS提供系統維護任務

b. 周期任務分類。根據用戶級別,可分為系統周期任務和用戶周期任務。

c. 系統周期任務一般直接直接修改/etc/crontab文件,即可配置周期任務, 可查看該文件中的內容

[root@vathe-pc tmp]#cat /etc/crontab    
SHELL=/bin/bash             
PATH=/sbin:/bin:/usr/sbin:/usr/bin       # 環境變量路徑
MAILTO=root                    # 周期任務執行之后,郵件接受者
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

  d. 周期任務中,通過/etc/crontab文件可知,有5個與時間相關的選項,這些選項有如下規則:

a.特定值 #
  例如: 5    或   20

b.可使用*表示任意值
c. 離散值用逗號隔開
    例如: 5,6,2   或者 0,3
d. 連續值用短折線“-”表示

  例如:10-21

e. 可使用正斜線“/”’步長:
  例如: */3  

  e. 配置用戶周期任務時,可以直接使用

    crontabs -e

     編輯相關配置文件,文件格式和/etc/crontab類似,只是不需要填寫user-name選項。其他選項:

crontab   -e     直接編輯文件
          -l  查看周期任務
          -r  清空周期任務  -i  交互模式
     -u USER: 僅root可運行,指定以特定用戶身份執行該周期任務

  f. 用戶周期任務,有自己獨有的時間格式, @CMD——可代表特定周期時間

@rebootRun once after reboot.
@yearly0 0 1 1 *
@annually0 0 1 1 *
@monthly0 0 1 * *
@weekly0 0 * * 0
@daily0 0 * * *
@hourly0 * * * *

4. 相關的配置文件

/etc/crontab
/etc/cron.d/ 配置文件
/etc/cron.hourly/ 腳本
/etc/cron.daily/腳本
/etc/cron.weekly/腳本
/etc/cron.monthly/腳本

/etc/anacrontab      負責執行以上/etc/cron.hourly/等文件中的系統任務

/var/spool/cron/    用戶周期任務配置文件

/etc/cron.{allow,deny} 用戶執行周期任務的權限配置文件

 

    

  

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM