«

定时任务

emer 发布于 2018-10-9 10:22   2515 次阅读     


2、定时任务

脚本有了,还需要在linux中添加一个定期执行脚本的任务,这里用linux自带的cron来处理这部分。

crontab -e

在打开的编辑器中添加如下内容(每个月1号凌晨3点更新)

0 0 3 * * sh /mnt/web/lets/ssl_auto_auth.sh >/dev/null 2>&1 &

使用crontab自动续期

在安装了lets encrypt证书之后,默认是90天到期,我们可以手动提前续期。不过为了防止忘记,我们可以采取让lets encrypt自动续期的方法。这里需要用到crontab定时执行命令。

一般来说CentOS系统里面都自动内置了crontab程序,如果没有,那么centos安装crontab命令如下:

yum install vixie-cron crontabs //安装Crontab

chkconfig crond on //设为开机自启动

service crond start //启动

说明:vixie-cron软件包是cron的主程序;crontabs软件包是用来安装、卸装、 或列举用来驱动 cron 守护进程的表格的程序。

Crontab使用方法

1、查看crontab定时执行任务列表

crontab -l

2、添加crontab定时执行任务

crontab -e

自动续签证书

Let’s Encrypt 证书只有 90 天的有效期,一旦我们忘记了就会失效了。所以建议使用crontab进行自动续期,让证书一直有效。

在Xhell中输入crontab -e添加命令,输入a进入编辑状态,然后用方向键选到新的一行,加上规则:

0 3 1 * * /root/certbot-auto renew –renew-hook “/etc/init.d/nginx reload”

按“ESC”退出编辑状态,输入:wq保存并退出。

用crontab -l命令查看一下是否存在刚才添加的定时命令。如果存在的话,那么每月1日的凌晨3点就会执行一次所有域名的续期操作。不过有请求次数的限制所以别太频繁了。




基本格式 :
*  *  *  *  *  command
分  时  日  月  周  命令
解 释:
第1列表示分钟1~59 每分钟用或者 /1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

例如定时请求某一个url : 00 03 * * * /usr/bin/curl http://crmpay.com/mpdown

脚本

#!/bin/sh 

source /etc/profile