首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
V2EX  ›  Linux

当部门老大错误操作清了所有用户的 crontab 的定时任务,问他还一脸无辜的说:我的也没了。((*・∀・)ゞ→→

  •  
  •   la2la · 105 天前 · 5209 次点击
    这是一个创建于 105 天前的主题,其中的信息可能已经有所发展或是发生改变。

    定时备份自己的任务真的是个习惯,鬼知道我的几十个定时任务都是啥( -'`-)

    第 1 条附言  ·  92 天前

    补充一个后续吧,我真的没搞清楚老大是怎么操作的,咱也不敢问,但是有一个更难受的是重新布置的crontab任务竟然不执行了。。。

    $ 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仅限于基本使用)
    于是老大让我们把定时任务迁移到另一个机器上(想想路径,数据库授权,表权限绑定一堆事就很烦)

    41 回复  |  直到 2019-07-18 18:24:14 +08:00
        1
    ben1024   105 天前
    为何不用版本控制 + 中控任务调度
        2
    tusj   105 天前
    避免记在心里,口耳相传。
    代码化+版本控制才是正道
        3
    liuzhiyong   105 天前 via Android
    哈哈,备份加版本控制,干活必不可少呀。
        4
    lithiumii   105 天前
    吓得我立刻备份了自己的几十条任务(并没有
        5
    la2la   105 天前
    @ben1024 我不太清楚你说的意识。能简单的说一下用到那些技术吗?谢谢!
        6
    d0m2o08   105 天前   ♥ 1
        7
    la2la   105 天前
    @d0m2o08 嗯,有一部分的任务使用 rundeck 部署的,但是也有一部分是 crontab,不过还好影响不大,都是一些整理文件,转移数据类的脚本。不过自己几个月前部署的任务是真的想不起是干啥的
        8
    rockyou12   105 天前
    lz 可以试试 ansible 来部署 cron,ansible 脚本放 git 上,又有了版本控制
        9
    exip   105 天前   ♥ 2
    老大看你们摸鱼太厉害又不便明说就搞了这么一出
        10
    julyclyde   105 天前
    怎么做到清了“所有”用户的 crontab 的?把 /var 删了?
        11
    x7395759   105 天前
    老大没有错啊哈哈哈哈哈
        12
    la2la   105 天前   ♥ 1
    @julyclyde 咱也没权限,咱也不干问啊
        13
    AngryPanda   105 天前 via Android
    我猜他用了 cron -r

    本来想敲-e,结果按错了成了-r

    我也中招几次了
        14
    Cbdy   105 天前 via Android
    为啥不用 Spring Schedule
        15
    memedahui   105 天前
    还好我写在 spring 里面
        16
    la2la   105 天前   ♥ 1
    @AngryPanda 我查了一下这个命令果然非常坑,那他是咋删除所有用户的呢? corntab -r 不是删除当前用户的吗
        17
    ben1024   105 天前   ♥ 1
    @la2la
    是有专门的服务做定时任务的调度,当然也可以集成在项目中。(例如 nesbot/carbon )
    cron 只进行配置一个分钟级别定时任务不断进行触发定时调度,或者用其他服务进行秒级触发
    这样会有很多好处(限制并发,限流,开闭,分发等),如果有精力还可以做图形化控制
        18
    la2la   105 天前
    @ben1024 好的。但是现在我们业务还没有这么复杂,我涉及到的都是比较简单的脚本,用 rundeck 感觉就够用了
        19
    lshero   105 天前
    gocron 真的很好用
        20
    Takamine   105 天前
    我比较想知道那你接下来怎么办...。
        21
    ily433664   105 天前
    说的没有错啊,他的也没了 2333333
        22
    deepdark   105 天前 via Android
    @lithiumii 哈哈哈哈哈哈哈我也想去备来着,打开 mobaxterm 就放弃了
        23
    yghack   105 天前
    赶紧拿执行日志找回来吧
        24
    MartinWu   105 天前
    莫名有点萌
        25
    whywhywhy   105 天前 via Android   ♥ 1
    平时技术太高超了,什么都能做。

    现在知道什么是最重要的了吧,数据!备份!

    不要出事了才想起来,然后用高超的实力拉一堆解决方案,不用花钱买教训还是不错的。
        26
    wtks1   105 天前 via Android
    莫非直接 crontab -r 了?
        27
    smallthing   105 天前
    git 备份配置的我眼泪掉下来
        28
    Enochyun   105 天前
    没事 明天看哪些业务数据没动了 就知道问题出在哪里了 [滑稽]
        29
    la2la   105 天前
    @Takamine 重新部署啊
        30
    shm7   105 天前 via iPhone
    人人都有大权限,不出事概率低吧。你们运维呢
        31
    watzds   105 天前 via Android
    什么用户?就你们几个开发??我还以为几十万用户啥的
        32
    la2la   105 天前
    @shm7 我们都是普通用户,他是部门老大有 root 权限
        33
    sampeng   105 天前
    我们用 jenkins 做的定时任务。美其名曰好看。。呵呵呵。。好看个锤子。。。
        34
    shouqw   105 天前
    用 puppet
        35
    autogen   105 天前
    我也 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   102 天前
    @wtks1
    @autogen
    crontab 命令是针对“单个用户”的啊,为什么会清空“所有用户”的 crontab 呢?
        37
    autogen   97 天前
    @julyclyde 因为大家都是用同一个 user 跑程序(比如所有的服务都用 admin 用户部署)
        38
    julyclyde   93 天前
    @autogen 唉,好倒霉
        39
    julyclyde   93 天前
    提倡使用 /etc/cron.d/ 啊,按任务分类,而不是按用户名分类
    这样的分类方法和粒度都更适合管理
        40
    la2la   92 天前
    @Takamine 想起来的布置上,其他的等人来找我再说 0.0
        41
    Takamine   92 天前 via Android
    @la2la 哈哈哈哈哈哈哈哈。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2262 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 28ms · UTC 02:34 · PVG 10:34 · LAX 19:34 · JFK 22:34
    ♥ Do have faith in what you're doing.