雲伺服器定時任務方案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 * * ?