如何使用git管理crontab任务

前言

Linux系统上执行定时任务, 使用crontab还是很方便的(有关crontab的使用可看crontab指令笔记). 只需要一行命令就完成了.

但是, 美中不足的是, crontab通过命令行管理任务, 无法通过代码库对任务进行管理. 若要更换机器, 所有任务都要重新增加一遍. 更糟的是若服务器突然崩了, 所有任务就都丢了.

我之前应对的操作, 是通过第三方的定时任务控件. 来自己实现定时任务.

直到最近我知道了这个路径: /etc/cron.d, cron在执行定时任务的时候, 会扫描路径/etc/cron.d下的所有文件并执行.

那也就是说, 我在/etc/cron.d路径下创建一个任务文件, 然后对这个文件进行管理就好了呀.

但是问题又来了, 我git管理的内容必然不会到系统目录中啊. 有了, 只要在/etc/cron.d路径下创建一个软连接不就好了么.

操作

1. 创建任务文件并通过git管理(路径随意)

注意: 文件内容和crontab语法相同, 但是任务文件中命令前需要指定任务的执行用户, 否则任务执行会失败哦.

# 注释
* * * * * root echo 1

2. 通过软连接将文件映射到/etc/cron.d

假设任务文件为: /path/self_crontab. 则创建软连接:

ln -s /path/self_crontab /etc/cron.d


大功告成. 至此, 就可以做到通过git对定时任务进行管理啦.

订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请发表评论。x