Ubuntu 定時執行腳本

一、關於crontab

cron是一個Linux定時執行工具,可以在無需人工干預的情況下運行作業。在Ubuntu中,cron是被默認安裝並啓動的。

 

二、例子

直接上例子,來看看怎麼用。

需求:定時每天8點,自動執行保存在/root目錄下hello.sh腳本

 

1、方法很簡單,只需編輯ect下crontab文件就行了,這個文件裏存放的就是cron要執行的命令,以及定時執行的時間

vim /etc/crontab

2、最後一行添加:

00 08   * * *   root    /root/hello.sh

 

三、解釋

1、crontab定時任務語法如下:

minute   hour   day   month   week   command     #順序:分 時 日 月 周 命令

2、說明:

    minute: 表示分鐘,可以是從 0 到 59 之間的任何整數。

    hour:表示小時,可以是從 0 到 23 之間的任何整數。

    day:表示日期,可以是從 1 到 31 之間的任何整數。

    month:表示月份,可以是從 1 到 12 之間的任何整數。

    week:表示星期幾,可以是從 0 到 7 之間的任何整數,這裏的 0 或 7 代表星期日。

    command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。

 

3、在以上各個字段中,還可以使用以下特殊字符:

    星號(*):代表所有可能的值,例如 month 字段如果是星號,則表示在滿足其它字段的制約條件後每月都執行該命令操作。

    逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”

    中槓(-):可以用整數之間的中槓表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”

    正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,\
例如*/10,如果用在 minute 字段,表示每十分鐘執行一次。

四、補充

cron 服務的啓動與停止,命令如下:

    1)service cron start  /*啓動服務*/

    2)service cron stop /*關閉服務*/

    3)service cron restart /*重啓服務*/

    4)service cron reload /*重新載入配置*/

    5)service cron status /*查看crond狀態*/ 

 

五、興趣拓展

寫了一個每天8點從中國天氣網爬取今天天氣,傳到ssh登錄歡迎頁面的小程序。這樣每次ssh連接的時候就能看到當天的天氣情況了。因爲我在深圳所以用的深圳的例子來舉,你可以自己去中國天氣網找到自己城市的頁面來爬。

1、shell腳本:/bin/tianqi.sh

#!/bin/bash
 
weatherDateRoot=http://www.weather.com.cn/weather1d/101280601.shtml  #中國天氣網深圳
weatherDataFile=/root/weather.html
 
wget $weatherDateRoot -O $weatherDataFile > /dev/null 2>&1  #下載頁面

result=$(cat $weatherDataFile | sed -n '/<input type="hidden" id="hidden_title" value/p')
subresult1=${result##*value=\"}     #處理網頁,獲取數據
subresult2=${subresult1%%\"*}       #這邊涉及到字符串分割,不熟悉可以搜Shell截取字符串

echo printf "\"${subresult2} 深圳\"" >>/etc/update-motd.d/00-header 
#將數據寫入歡迎頁面文件,我這邊還添了個深圳兩個字

 2、crontab文件:

00 08   * * *   root    cp /etc/update-motd.d/00-header_bk /etc/update-motd.d/00-header
01 08   * * *   root    /bin/tianqi.sh

什麼意思呢,第一條執行的是將備份的00-header_bk文件覆蓋00-header文件,因爲每次執行完tianqi.sh,都會在最後追加當日天氣狀況,如果不用備份覆蓋,那麼就會保留有之前的天氣。因此,第一次啓用這個程序之前需要先備份一下00-header,命名爲00-header_bk。第二條就是執行天氣獲取腳本了。

 

好了,要講的就這麼多。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章