linux如何執行定時任務


轉自: https://www.cnblogs.com/warm-stranger/p/11861744.html

聲明:本文章是在以上地址博文基礎上進行整理學習,如有侵權,請聯系博主刪除,感謝知識共享,一起進步,加油鴨
=========================================
crontab命令常見於Unix和Linux的操作系統之中,用於設置周期性被執行的指令。該命令從標准輸入設備讀取指令,並將其存放於“crontab”文件中,以供之后讀取和執行。通常,crontab儲存的指令被守護進程激活。crond 常常在后台運行,定時檢查是否有預定的作業需要執行。
 

一、如何創建一個腳本

先寫一個簡單的shell命令:
1. 使用pwd命令查看當前路徑為/root目錄:
root@iZuf66a8zevmp2f4xcquIrZ: 、 # pwd /root root@iZuf66a8zevmp2f4xcquIrZ: 、 #
 
2. 使用vi編輯器 可以直接輸入命令$: vim hello.sh  編寫第一個shell文件 hello.sh, 請以.sh結尾
  以“#”開頭的為注釋行,不會被執行。
  [ #!/bin/bash ] 作為shell腳本文件的開頭,
  [ echo "你好, www.webfunny.cn !" ] 表示打印這句話。
  [ node -v ] 表示查看node版本號
^ 一 epou “ i U)•KUUnJClöM•MMM ' 殛 “ 01430 q-SD(R/LIYR/i#
 
3. 執行命令$:chmod 755 hello.sh,通過chmod命令賦予該腳本的執行權限,否則沒有執行權限。
   執行命令$:/root/hello.sh 表示在全路徑下執行該shell腳本。
root@iZuf66a8zevmp2f4xcqu1rZ: 、 # /root/hello.sh 你 好 , www.webfunny.cn ! v6 · 4 ·
 
到此,第一個簡單的腳本就完成了。
下邊我們就開始創建定時任務了。
 

二、安裝crontab 

  1)Ubantu系統下安裝crontab(看清操作系統)
   正常情況下需要先執行$:apt-get upgrade 進行升級

 

         安裝:apt-get install cron
         啟動:service cron start
         重啟:service cron restart
         停止:service cron stop
         檢查狀態:service cron status
         查詢cron可用的命令:service cron
         檢查Cronta工具是否安裝:crontab -l
  2)CentOS系統下安裝cron(看清操作系統)
         1)vixie-cron 軟件包是 cron 的主程序;
    2)crontabs 軟件包是用來安裝、卸裝、或列舉用來驅動 cron 守護進程的表格的程序。

 

    安裝:yum install vixie-cron
     安裝:yum install crontabs
 
  基本命令:

 

  service crond start //啟動服務
  service crond stop //關閉服務
  service crond restart //重啟服務
  service crond reload //重新載入配置
  service crond status //查看crontab服務狀態
 

三、開啟crontab服務

  參考步驟二

四、設置需要執行的腳本

配置定時任務有兩種方式,一種是使用crontab -e編輯定時任務,另一種是直接編輯/etc/crontab文件:

方法一:使用crontab -e編輯定時任務

這樣編輯屬於用戶自定義的,會被寫到/var/spool/cron目錄下,生成一個和用戶名一致的文件,問價內容就是我們編輯的定時腳本。如下:

 

 

方法二:直接編輯/etc/crontab文件

直接編輯 vim /etc/crontab ,默認的文件形式如下:

 

 

前四行是有關設置cron任務運行的環境變量。SHELL變量的值指定系統使用的SHELL環境(該樣例為bash shell),PATH變量定義了執行命令的路徑。


文件/etc/crontab中每行任務的描述格式如下,其實就是cron表達式:
minute hour day month dayOfWeek command

minute - 從0到59的整數
hour - 從0到23的整數
day - 從1到31的整數 (必須是指定月份的有效日期)
month - 從1到12的整數 (或如Jan或Feb簡寫的月份)
dayofweek - 從0到7的整數,0或7用來描述周日 (或用Sun或Mon簡寫來表示)
command - 需要執行的命令(可用as ls /proc >> /tmp/proc或 執行自定義腳本的命令)

root表示以root用戶身份來運行
run-parts表示后面跟着的是一個文件夾,要執行的是該文件夾下的所有腳本
對於以上各語句,星號(*)表示所有可用的值。例如*在指代month時表示每月執行(需要符合其他限制條件)該命令。
整數間的連字號(-)表示整數列,例如1-4意思是整數1,2,3,4
指定數值由逗號分開。如:3,4,6,8表示這四個指定整數。
符號“/”指定步進設置。“/<interger>”表示步進值。如0-59/2定義每兩分鍾執行一次。步進值也可用星號表示。如*/3用來運行每三個月份運行指定任務。

最終配置如下,每分鍾執行一次:

 

 

 

定時打印結果如下:

 

 

總結:
(系統級)做系統級配置我們會直接配置/etc/crontab
(用戶級)一般還是建議大家使用crontab -e,這樣系統也會幫着檢查我們配置的腳本語法。

 

 


免責聲明!

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



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