天天看點

雲伺服器定時任務方案cron(全流程)雲伺服器定時任務方案cron(全流程)

雲伺服器定時任務方案cron(全流程)

檢視某個端口是否正常的守護程序指令:

netstat -tln|grep 7011
           

一、安裝cron

yum install vixie-cron
yum install crontabs
           

二、檢視crond服務是否運作

/sbin/service crond status

或

ps -elf|grep crond|grep -v "grep"
           

三、建立shell腳本

eg:建立reStart.sh腳本

reStart.sh,檔案内容

#!/bin/bash

# 此檔案用作:為伺服器每1分鐘監聽本項目端口,項目崩潰重新開機腳本。
source /etc/profile
source ~/.bash_profile

port='7011'

netstat -tln|grep $port || {
cd /data/project_2020/api_2020;
npm run start;
}
           

四、将所建立的shell腳本權重限

注:非常重要,不權重限,cron無法執行shell腳本
sudo chmod -R 777 reStart.sh
           

五、編輯cron配置檔案

1.進入cron配置檔案,并vim進行編輯(隻有這個檔案是cron的配置檔案):

cd /var/spool/cron/
vim root
           
檔案内容:
# SHELL=/bin/sh
# PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# 示例每1秒鐘運作一次指令 
# */1 * * * * /data/topay/shell/refresh_week.sh

# 每周的周日00:01重新整理abc_game的成績
1 0 * * 0 /data/topay/shell/refresh_week.sh

# 每分鐘監聽7001端口(api_2020項目),端口崩潰,重新開機項目
0 */1 * * * /data/project_2020/shell/api_2020/reStart.sh
           

六、重新開機cron定時任務

執行:
service crond restart
           
附:cron所有指令
crond服務操作指令:

/sbin/service crond start //啟動服務  
/sbin/service crond stop //關閉服務  
/sbin/service crond restart //重新開機服務  
/sbin/service crond reload //重新載入配置
或
service crond restart // 重新開機cron
service crond start // 啟動cron
service crond stop // 停止cron
service crond reload //重新載入配置
           

七、cron指令示例

Cron表達式範例:

每隔1秒執行一次:*/1 * * * * ?

每隔1分鐘執行一次:0 */1 * * * ?

每天20點執行一次:0 0 20 * * ?

每天淩晨1點執行一次:0 0 1 * * ?

每月1号淩晨1點執行一次:0 0 1 1 * ?

每月最後一天23點執行一次:0 0 23 L * ?

每周星期天淩晨1點實行一次:0 0 1 ? * L

在每小時的26分、29分、33分執行一次:0 26,29,33 * * * ?

每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?