天天看点

云服务器定时任务方案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 * * ?