蘋果cms定時任務Crontab設定蘋果cms自動更新腳本

蘋果cms的定時任務更新有幾種方式,如果是在Windows中搭建的蘋果cms,可以使用windows自帶的定時任務更新,如果是Linux的作業系統可以在第三方平台上設定定時更新的任務,或者在阿里雲,騰訊雲這種第三方網站上設定自定更新任務。以下介紹另一種方式,在Linux系統中使用crontab指令設定定時任務來自動更新網站。

蘋果cms定時任務如何使用Crontab指令設定定時任務自動更新

蘋果cms的定時任務更新有幾種方式,如果是在Windows中搭建的蘋果cms,可以使用windows自帶的定時任務更新,如果是Linux的作業系統可以在第三方平台上設定定時更新的任務,或者在阿里雲,騰訊雲這種第三方網站上設定自定更新任務。以下介紹另一種方式,在Linux系統中使用crontab指令設定定時任務來自動更新網站。

了解什麼是crontab 定時任務

透過crontab 指令,我們可以在固定的間隔時間執行指定的系統指令或shell script腳本。時間間隔的單位可以是分鐘、小時、日、月、週及以上的任意組合。這個指令非常適合週期性的日誌分析或資料備份等工作。

命令格式

crontab [-u user] file crontab [-u user] [ -e | -l | -r ]

命令參數

-u user:用來設定某個使用者的crontab服務;
file:file是指令檔的名字,表示將file做為crontab的任務清單檔案並載入crontab。如果在命令列中沒有指定這個文件,crontab指令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。
-e:編輯某個使用者的crontab檔案內容。如果不指定用戶,則表示編輯目前用戶的crontab檔案。
-l:顯示某個用戶的crontab檔案內容,如果不指定用戶,則表示顯示目前用戶的crontab檔案內容。
-r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則預設刪除目前用戶的crontab檔案。
-i:在刪除使用者的crontab檔案時給予確認提示。

crontab的檔案格式

分時日月星期要執行的指令

  • 第1列分鐘0~59
  • 第2列小時0~23(0表示子夜)
  • 第3列日1~31
  • 第4列月1~12
  • 第5列星期0~7(0和7表示星期日)
  • 第6列要運行的命令
# .---------------- 分鐘,取值範圍為0-59 # | .------------- 小時,取值範圍為0-23 # | | .---------- 日,取值範圍為1-31 # | | | .------- 月,取值範圍為1-12 # 122 | | | | | | .-- 要執行的指令# | | | | | | 0 19 * * * bash /root/test.sh

蘋果cms定時任務

下面配置蘋果cms的定時任務,首先在蘋果cms的後台的系統選項中進行定時任務配置

蘋果cms定時任務Crontab設定蘋果cms自動更新腳本

在需要自動更新的任務後面的操作選項中,在測試上點擊滑鼠右鍵,然後點擊複製連結地址獲取測試的URL位址。

例如:

https://xxx.com/api.php/timming/index.html?enforce=1&name=lz https://xxx.com/api.php/timming/index.html?enforce=1&name=sd https://xxx.com/api.php/timming/index.html?enforce=1&name=sd https://xxx.com/api.php/timming/index.html?enforce=1&name=xl https://xxx.com/api.php/timming/index。 https://xxx.com/api.php/timming/index.html?enforce=1&name=gs

這些url在瀏覽器中打開,需要是可以正常更新網站的有效連結。

接下來在Linux系統中設定定時任務。

安裝crontab

一般CentOS 會預設安裝了crontab,執行下面指令,查看是否安裝:

rpm -qa | grep crontab

如果查詢結果類似於下面,則說明已安裝:

蘋果cms定時任務Crontab設定蘋果cms自動更新腳本

如果結果為空,表示沒有安裝,請執行下方指令進行安裝即可:

dnf install -y crontabs

crontab 常用指令

查看crontab 運行狀態:

systemctl status crond

如上圖,如果顯示結果為Active: active (running) 表示運行中,Active: inactive (dead) 則表示未執行。

如果crontab 未執行,可以透過下方指令設定開機自啟動並啟動。

設定crontab 開機自動啟動:

systemctl enable crond

啟動crontab:

systemctl start crond

查看目前使用者的定時任務:

crontab -l

設定定時任務

首先在root目錄下建立一個vod.sh的腳本。

vi /root/vod.sh

按i 進入編輯狀態,貼上下面內容:

#! /bin/bash a=$(curl -k 'https://xxx.com/api.php/timming/index.html?enforce=1&name=lz') b=$(curl -k 'https://xxx.com/api.php/timming/index.html?enforce=1&name=sd'https://xxx.com/api.php/timming/index.html?enforce=1&name=47(curl) 'https://xxx.com/api.php/timming/index.html?enforce=1&name=xl') d=$(curl -k 'https://xxx.com/api.php/timming/index.html?enforce=1&name=kc') e=$(curl -k 'https://xxxmmm/api.php/Met. sleep 10 echo $b sleep 10 echo $c sleep 10 echo $d sleep 10 echo $e

按Esc 鍵,再輸入:wq 儲存檔案。

也可以使用下面的寫法,效果是一樣的。

#! /bin/bash func() { curl 'https://xxx.com/api.php/timming/index.html?enforce=1&name=gs' touch gs echo "gs打開完畢" } func & sleep 5 if [ -f gs ] then echo "gs" else echogs 成功" else echogs( 'https://xxx.com/api.php/timming/index.html?enforce=1&name=kc' touch kc echo "kc打開完成" } func & sleep 5 if [ -f kc ] then echo "kc成功" else echo "kc失敗" fi rm -ffunc sleep 10 furl 'https://xxx.com/api.php/timming/index.html?enforce=1&name=sd' touch sd echo "sd開啟後" } func & sleep 5 if [ -f sd ] then echo "sd成功" else echo "sd 'https://xxx.com/api.php/timming/index.html?enforce=1&name=xl' touch xl echo "xl打開完畢" } func & sleep 5 if [ -f xl ] then echo "xl成功" else echo "xl失敗" fi rm -f xl ] then echo "xl成功" else echo "xl失敗" fi rm -f xl sleep 10 func( sleep) 'https://xxx.com/api.php/timming/index.html?enforce=1&name=lz' touch lz echo "lz打開完畢" } func & sleep 10 if [ -f lz ] then echo "lz成功" else echo "lz失敗" fi rm -f lz ] then echo "lz成功" else echo "lz失敗" fi rm -f lz

sleep指令語法以下是Bash中sleep指令的語法:
sleep number[suffix]
可以使用正整數或小數作為時間值。後綴是可選部分。可以將以下任一項用作後綴:

  • s - 表示秒
  • m - 表示分鐘
  • h - 表示小時
  • d - 表示天

注意:如果沒有後綴,則數字以秒為單位(預設)。

如果指定了兩個或多個參數,則總的時間將被視為等於值總和的時間。以下是一些簡單的範例,示範如何使用sleep指令:

  • 睡眠9秒鐘,使用:
    sleep 9 或sleep 9s
  • 睡眠0.5秒鐘,使用:
    sleep 0.5 或sleep 0.5s
  • 睡眠2分30秒,使用:
    sleep 2m 30s
  • 睡眠8小時,使用:
    sleep 8h
  • 睡眠2天9小時5分55秒,使用:
    sleep 2d 9h 5m 55s

執行下面命令可以編輯目前使用者的定時任務:

crontab -e

執行完crontab -e 指令後,會開啟一個文檔,按i 進入編輯狀態。將下面內容貼在文件中。然後儲存退出!

0 19 * * * bash /root/vod.sh

上面這段程式碼的意思是,每天的19點,執行/root/vod.sh 腳本。

如果你想每個小時執行一次腳本,可以逐條加入。

注意:在定時任務的設定檔中,時間的24點,無法輸入24 ,要輸入0 ,否則會報錯!

例如:

0 1 * * * bash /root/vod.sh 0 2 * * * bash /root/vod.sh 0 3 * * * bash /root/vod.sh 0 4 * * * bash /root/vod.sh 0 5 * * * bash /root/vod * * bash /root/vod.sh 0 5 * * * bash /root/vod /root/vod.sh 0 8 * * * bash /root/vod.sh 0 9 * * * bash /root/vod.sh 0 10 * * * bash /root/vod.sh 0 11 * * * bash /root/vod.sh 0 12 *root 14 * * * bash /root/vod.sh 0 15 * * * bash /root/vod.sh 0 16 * * * bash /root/vod.sh 0 17 * * * bash /root/vod.sh 0 18 * * * bash /root/rootd /root/vod.sh 0 21 * * * bash /root/vod.sh 0 22 * * * bash /root/vod.sh 0 23 * * * bash /root/vod.sh 0 0 * * * bash /root/vod.sh

crontab 不執行的相關問題

  • 檢查腳本路徑前是否新增了bash 或/etc/profile;/bin/sh
  • 檢查crontab 服務是否正常
  • 檢查腳本路徑是否絕對路徑

curl請求url裡含有&請求失敗

curl請求裡,url含有多個參數時,url需要使用單引號括起來,否則請求會被截斷,使用單引號將url的內容括起來就好了。

Ubuntu用命令列開啟網頁的三種方法

第一種方法links命令

apt install links links 'https://uzbox.com'

第二種方法w3m指令

apt install w3m w3m 'https://uzbox.com'

第三種方法lynx指令

apt install lynx lynx 'https://uzbox.com'

 

 

5/5 - (1 vote)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *