Linux 中使用 Crontab 设置定时任务

368

前言

最近有个自己的特殊需求,需要定期备份某些数据到github,于是打算使用linux系统本身的定时器完成此需求。

crontab简介

crontab命令常见于Unix类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs

确定服务器是否开启定时任务计划服务

命令: service crond status 确认定时任务是否开启。

image.png

常用命令:

# 开启服务
service crond start
# # 开启服务
service crond stop
# 重启服务
service crond restart
# 重新载入配置
service crond reload

crontab格式说明

格式为 :* * * * *

解释minutehourday of mouthmonth of yearday of week
标识*****
含义每个小时的第几分钟执行该任务每天的第几个小时执行该任务每月的第几天执行该任务每年的第几个月执行该任务每周的第几天执行该任务
取值范围0~590~231~311~120~6(0表示周天)

示例:

5 * * * * Command每小时的第5分钟执行一次命令
*/1 * * * * Command每1分钟执行一次命令
0 */1 * * * Command每1小时执行一次命令
30 18 * * * Command指定每天下午的 6:30 执行一次命令
30 7 8 * * Command指定每月8号的7:30分执行一次命令
30 5 8 6 * Command 指定每年的6月8日5:30执行一次命令
30 6 * * 0 Command指定每星期日的6:30执行一次命令
每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。
5,15,25,35,45,55 16,17,18 * * * Command

开始创建一个定时任务

crontab -e 编辑某个用户的cron服务
crontab -l 列出某个用户cron服务的详细内容

image

crontab -r 删除某个用户的cron服务(慎用)

查看定时任务的执行情况

/var/spool/mail/{username}中可以查看最近的crontab的执行情况

username:用户名

cron的定时任务备份恢复

如果使用crontab -r 误删了定时任务在/var/spool/cron下有定时任务的备份,可以通过该cron找回
如果没有权限 的话su - + root.passwordroot用户下进行查看

后记

参考文章:点我