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