小言_互联网的博客

linux crontab可代码配置方案

462人阅读  评论(0)

文章目录

背景

用linux服务器,crontab使用的是很多的,大型项目,可能一台机要配置几十上百个定时任务来跑,每次发布都是crontab -e上去编辑然后保存,数量少还好,但是后面维护起来就比较麻烦了,有些没用的也不敢清,越多维护的成本越高,如果能做成代码里面配置的就好了,指定哪台机有哪些crontab,发布的时候,更新一下就好了,其实crontab是支持这种做法的

方案

crontab 一般使用的比较多的指令是

crontab -e
crontab -l

其实还有一个,很少人用

crontab file_name  //crontab + 文件名

就可以直接更新crontab了,而且也不影响正在运行的,前提是文件内的格式要对
因此,可以加一个配置

$config[$ip] = [
		[
		"min" => "*",
		"hour" => "*",
		"day" => "*",
		"week" => "*",
		"month" => "*",
		"command" => "php /html/project/artian test:command >> /tmp/command.log 2>&1 &"
		],
		[
		"min" => "*",
		"hour" => "*",
		"day" => "*",
		"week" => "*",
		"month" => "*",
		"command" => "php /html/project/artian test:command2 >> /tmp/command.log2 2>&1 &"
		]
];

发布的时候,用代码转成crontab 的格式

* * * * * php /html/project/artian test:command >> /tmp/command.log 2>&1 &

的文件,crontab.txt

然后执行

crontab crontab.txt

就万事大吉了,以后只需要维护代码就行了,再也不用提心吊胆的上机器操作了,至于如果要做得安全可靠一点,那就可以根据不同需求去做了,这里只提供一个大概的方案和思路


转载:https://blog.csdn.net/szulilin/article/details/101544696
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场