Crontab用法简解

有时俺们需要服务器定时自动重启,自动检查更新SSL证书,自动更新v2ray服务等等,这时就需要用到crontab服务了,本篇就讲讲crontab的具体用法。

安装cron

安装:apt install cron

启动:service cron start

重启:service cron restart

状态:service cron status

编辑crontab定时任务

crontab -e后会启动vi或者nano,这时就可以编辑任务了,下面是一个每天午时12点自动重启服务器配置示例:

0 12 * * * /sbin/reboot

前面0表示分钟,范围0-59分钟,分钟须是5的倍数

第二位12表示小时,范围0-23小时

第三位*表示天数,范围1-31号

第四位*表示月份,范围1-12个月

第五位*表示星期,范围是0-7

后面/sbin/reboot部分是要执行的命令

看不明白的看图:

cron

图是盗的,出处不明

crontab配置示例

crontab -e后编写配置,前面部分是定时执行,后面是执行的命令,每行一个任务,示例如下:

自动重启服务器

下面配置表示,每星期一凌晨3点自动重启服务器

0 3 * * 1 /sbin/reboot

自动更新SSL证书

下面是自动检查更新ssl证书方法,当然你得提前安装好certbot-auto

安装certbot-auto

1
2
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

certbot-auto申请证书

./certbot-auto certonly --standalone --email youmail@mail -d abc.com -d www.abc.com

后面的nginx配置证书路径等就不展开了。

下面是cron每月1号凌晨2点自动检查更新ssl证书配置

0 2 1 * * certbot-auto renew --pre-hook "service nginx stop" --post-hook "service nginx start"

自动更新v2ray

每月1号凌晨1时自动更新v2ray,当然你得提前安装好v2ray

0 1 1 * * bash install-release.sh

通过上面的示例,你可以枚举出许多需要定时自动执行的任务,比如定时自动更新系统、自动执行一些脚本等等。

任务编辑,保存后,需重启cron才能生效:

重启:service cron restart

查看任务:crontab -l

查看cron日志:cat /var/log/cron.log