定时备份自己的任务真的是个习惯,鬼知道我的几十个定时任务都是啥( -'`-)
$ systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-07-02 10:33:21 CST; 2 weeks 1 days ago
Main PID: 615 (crond)
CGroup: /system.slice/crond.service
└─615 /usr/sbin/crond -n
但是明明发现crond服务在运作着啊(我linux仅限于基本使用)
于是老大让我们把定时任务迁移到另一个机器上(想想路径,数据库授权,表权限绑定一堆事就很烦)
1
ben1024 2019-07-05 15:25:16 +08:00
为何不用版本控制 + 中控任务调度
|
2
tusj 2019-07-05 15:27:34 +08:00
避免记在心里,口耳相传。
代码化+版本控制才是正道 |
3
liuzhiyong 2019-07-05 15:28:24 +08:00 via Android
哈哈,备份加版本控制,干活必不可少呀。
|
4
lithiumii 2019-07-05 15:32:31 +08:00
吓得我立刻备份了自己的几十条任务(并没有
|
6
d0m2o08 2019-07-05 15:37:18 +08:00 1
用 gocron 吧
https://github.com/ouqiang/gocron |
7
la2la OP @d0m2o08 嗯,有一部分的任务使用 rundeck 部署的,但是也有一部分是 crontab,不过还好影响不大,都是一些整理文件,转移数据类的脚本。不过自己几个月前部署的任务是真的想不起是干啥的
|
8
rockyou12 2019-07-05 15:47:33 +08:00
lz 可以试试 ansible 来部署 cron,ansible 脚本放 git 上,又有了版本控制
|
9
exip 2019-07-05 15:48:01 +08:00 2
老大看你们摸鱼太厉害又不便明说就搞了这么一出
|
10
julyclyde 2019-07-05 16:14:11 +08:00
怎么做到清了“所有”用户的 crontab 的?把 /var 删了?
|
11
x7395759 2019-07-05 16:18:16 +08:00
老大没有错啊哈哈哈哈哈
|
13
AngryPanda 2019-07-05 16:55:33 +08:00 via Android
我猜他用了 cron -r
本来想敲-e,结果按错了成了-r 我也中招几次了 |
14
Cbdy 2019-07-05 16:57:41 +08:00 via Android
为啥不用 Spring Schedule
|
15
memedahui 2019-07-05 17:23:11 +08:00
还好我写在 spring 里面
|
16
la2la OP @AngryPanda 我查了一下这个命令果然非常坑,那他是咋删除所有用户的呢? corntab -r 不是删除当前用户的吗
|
17
ben1024 2019-07-05 17:27:45 +08:00 1
@la2la
是有专门的服务做定时任务的调度,当然也可以集成在项目中。(例如 nesbot/carbon ) cron 只进行配置一个分钟级别定时任务不断进行触发定时调度,或者用其他服务进行秒级触发 这样会有很多好处(限制并发,限流,开闭,分发等),如果有精力还可以做图形化控制 |
19
lshero 2019-07-05 17:32:57 +08:00
gocron 真的很好用
|
20
Takamine 2019-07-05 17:45:39 +08:00
我比较想知道那你接下来怎么办...。
|
21
ily433664 2019-07-05 17:50:47 +08:00
说的没有错啊,他的也没了 2333333
|
23
yghack 2019-07-05 17:57:25 +08:00
赶紧拿执行日志找回来吧
|
24
MartinWu 2019-07-05 18:20:33 +08:00
莫名有点萌
|
25
whywhywhy 2019-07-05 18:30:39 +08:00 via Android 1
平时技术太高超了,什么都能做。
现在知道什么是最重要的了吧,数据!备份! 不要出事了才想起来,然后用高超的实力拉一堆解决方案,不用花钱买教训还是不错的。 |
26
wtks1 2019-07-05 18:34:38 +08:00 via Android
莫非直接 crontab -r 了?
|
27
smallthing 2019-07-05 18:35:35 +08:00
git 备份配置的我眼泪掉下来
|
28
Enochyun 2019-07-05 18:42:02 +08:00
没事 明天看哪些业务数据没动了 就知道问题出在哪里了 [滑稽]
|
30
shm7 2019-07-05 19:20:04 +08:00 via iPhone
人人都有大权限,不出事概率低吧。你们运维呢
|
31
watzds 2019-07-05 19:23:57 +08:00 via Android
什么用户?就你们几个开发??我还以为几十万用户啥的
|
33
sampeng 2019-07-05 20:59:54 +08:00
我们用 jenkins 做的定时任务。美其名曰好看。。呵呵呵。。好看个锤子。。。
|
34
shouqw 2019-07-06 05:24:11 +08:00
用 puppet
|
35
autogen 2019-07-06 07:49:24 +08:00
我也 crontab -r 和-e 经常搞错。。。。。。。。。。
加个这个脚本到 bashrc 里: etime=`date -d "0 days ago" +%Y%m%d_%H%M%S` if [ "$1" = "-r" ] ; then echo "My God! Dangerous..." echo "Exit..." exit 2 fi if [ "$1" = "-l" ] ; then /usr/bin/crontab -l exit 0 fi if [ "$1" = "-e" ] ; then mkdir -p ~/cronbak /usr/bin/crontab -l > ~/cronbak/cron.bak.$etime.a /usr/bin/crontab -e /usr/bin/crontab -l > ~/cronbak/cron.bak.$etime.b fi |
36
julyclyde 2019-07-08 11:55:00 +08:00
|
39
julyclyde 2019-07-17 17:53:59 +08:00
提倡使用 /etc/cron.d/ 啊,按任务分类,而不是按用户名分类
这样的分类方法和粒度都更适合管理 |