crontab实现定时任务

0. 写在前面

crontab是Ubuntu自带的定时任务服务,该服务启动后,每分钟会检查是否有任务需要执行(精准执行)。这个服务非常方便,我们可以用来备份数据库,甚至可以用git从仓库拉取最新代码(还是用docker比较好吧)。

1. 用户级crontab

我们常用到以下指令

1
2
3
4
crontab -e // 编辑
crontab -l // 列出任务
crontab -r // 移除任务 [-i] 不确认直接删除
crontab -r xxx -u username // 指定用户的任务

详细可用man查看手册。

2. 系统级crontab

用whereis指令查看crontab配置文件在哪

1
2
$ whereis crontab
crontab: /usr/bin/crontab /etc/crontab /usr/share/man/man5/crontab.5.gz /usr/share/man/man1/crontab.1.gz

/etc/crontab是系统级的crontab配置文件,编辑需要root权限,用vim打开

1
sudo vim /etc/crontab

截图

参数参考表

m h dom mon dow user command
分钟 0-59 小时 0-23 天 1-31 月 1-12 星期 1-6 0表示星期天 用户 执行命令

’ * ‘ 表示所有

如果需要执行的命令太多,我们可以直接写一个shell脚本,直接执行这个脚本就ok了。