V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
solrted
V2EX  ›  数据库

DBA 不会用 tmux

  •  
  •   solrted · 2017-03-17 11:15:29 +08:00 · 5463 次点击
    这是一个创建于 2569 天前的主题,其中的信息可能已经有所发展或是发生改变。
    让 DBA 执行一个修改表结构的脚本,表很多,而且大,耗时要很久,我说怕断线你开 screen 或者 tmux ,
    我给他开了 tmux ,他退出去然后用了这个命令

    bash sql.sh &

    他说这样就能防止断线中断脚本。

    我惊呆了,难道前面不加一个 nohup 命令,只放在后台也行?这让我很凌乱!
    81 条回复    2017-03-20 18:00:37 +08:00
    QAPTEAWH
        1
    QAPTEAWH  
       2017-03-17 11:19:21 +08:00   ❤️ 19
    yangqi
        2
    yangqi  
       2017-03-17 11:21:48 +08:00
    DBA 为什么要会 tmux? 为什么要会 screen?
    solrted
        3
    solrted  
    OP
       2017-03-17 11:25:47 +08:00 via Android
    @yangqi 不会用这些也不要紧,我意思是让他要有个随时可能网络有断开的风险,要知道用其它方法避免这个风险。这个问题我觉得不少人有遇到过。
    Immortal
        4
    Immortal  
       2017-03-17 11:26:09 +08:00
    同 2L
    有点道德绑架了..
    yangqi
        5
    yangqi  
       2017-03-17 11:32:22 +08:00
    @solrted 很明显他不知道,但是也不影响人家做 DBA 的工作,你也没必要大惊小怪吧。如果你什么都知道的话怎么不把所有人的活都做了?
    VinKing
        6
    VinKing  
       2017-03-17 11:34:44 +08:00
    不觉得不会 tmux 有什么不妥。
    很多时候,不要拿别人`短`来显示自己`长`。
    artandlol
        7
    artandlol  
       2017-03-17 11:36:40 +08:00
    只要窗口不关都可以啊
    可能是常识误导吧 认为这就可以了
    因为现在很多应用默认这样就可以后台运行 所以 你要开导啊
    tedzhou1221
        8
    tedzhou1221  
       2017-03-17 11:40:12 +08:00 via iPhone
    😄,以前我也曾经说过别人:作为一个开发,连 vim 都不会用?用 mac 不知道用 homebrew?

    现在的我看透了,只是工具,会用就对更有效率,不会也影响不大。(但影响太大就不行了)
    Patrick95
        9
    Patrick95  
       2017-03-17 11:47:05 +08:00
    真当你们的 DBA 不看 v2 吗
    rrfeng
        10
    rrfeng  
       2017-03-17 11:52:41 +08:00
    我是运维也不会用 tmux 呢,也不会用 screen 呢。
    我就是喜欢 ./command &
    为什么要加 nohup 呢?知道为什么要加 nohup 吗?有别的解决办法吗?一万种。
    zhouyang
        11
    zhouyang  
       2017-03-17 11:54:47 +08:00
    这点事还至于震惊,至于发个帖子
    bear145
        12
    bear145  
       2017-03-17 11:58:32 +08:00
    看到这么多人反驳楼主我就放心了
    lululau
        13
    lululau  
       2017-03-17 11:58:37 +08:00
    有本事你先解释解释为什么 bash sql.sh & 这样不能防止断线中断脚本。
    ceyes
        14
    ceyes  
       2017-03-17 11:59:11 +08:00
    部分支持楼主,至少要 nohup 啊,就算不关闭终端,也有网络断线或者远端服务器 ssh 超时的风险。
    cye3s
        15
    cye3s  
       2017-03-17 12:01:10 +08:00 via Android
    那你为啥不把 dba 的工作也干了?😁
    joye1230
        16
    joye1230  
       2017-03-17 12:06:12 +08:00
    讲道理。。。。你要当面解释一下
    xxx &
    nohup xxx &
    你不解释,别人当然不听......
    别人 不听你也没办法
    zander1024
        17
    zander1024  
       2017-03-17 12:10:25 +08:00
    我挺纳闷楼主为什么不当着 DBA 的面说?
    webjin1
        18
    webjin1  
       2017-03-17 12:16:08 +08:00
    (./sql.sh & )
    daemonghost
        19
    daemonghost  
       2017-03-17 12:19:24 +08:00
    虽然不是 DBA ,但是我最近也在弄 tmux ,总结了下 tmux 的基本使用 http://blog.csdn.net/u014717036/article/details/54695462
    http://blog.csdn.net/u014717036/article/details/60139776
    jamesxu
        20
    jamesxu  
       2017-03-17 12:23:44 +08:00 via iPhone
    话说 nohup 这个命令我一次也没用过
    DuckJK
        21
    DuckJK  
       2017-03-17 12:23:57 +08:00
    神马叫以人为本,工具就是工具。
    rashawn
        22
    rashawn  
       2017-03-17 12:25:30 +08:00 via iPhone
    这也叫道德绑架 我说别人不会骑自行车跟道德有毛线关系……
    zhidian
        23
    zhidian  
       2017-03-17 12:27:47 +08:00
    看楼主的 id 叫 solrted ,你知道 solr 怎么读么?== 读错不是好程序员。( kidding ……)
    phrack
        24
    phrack  
       2017-03-17 12:32:48 +08:00 via Android
    术业有专攻, dba 能做好 dba 的工作就很好了,其他都是其次。
    TheCure
        25
    TheCure  
       2017-03-17 12:33:38 +08:00
    [root@*.*.com ~]# shopt |grep hup
    huponexit off

    直接设置 shopt 就行了 nohup 都不用加

    用 nohup 显得一点都不 pro (逃
    surfire91
        26
    surfire91  
       2017-03-17 12:38:52 +08:00
    楼主觉得有点运维经验的应该要知道任意一个能不中断运行脚本的办法,对提高工作效率有帮助。
    楼主可以跟他说明下这样的好处。
    500miles
        27
    500miles  
       2017-03-17 12:44:42 +08:00   ❤️ 6
    @QAPTEAWH 垠神的文章, 放在这里再合适不过了...
    下面引用一小段儿

    >IT 公司经常有这样的人,以为精通一些看似复杂的命令行,或者某些难用的程序语言就很了不起似的。他们如果听说你不知道某个命令的用法,那简直就像法国人不知道拿破仑,美国人不知道华盛顿一样。这些人没有发现,自己身边有些同事其实掌握着精髓的知识,他们完全有能力从自己已有的知识,衍生制造出所有这些工具,而不只是使用它们,甚至设计得更加完善和方便易用。
    fish267
        28
    fish267  
       2017-03-17 12:50:51 +08:00 via Android
    >IT 公司经常有这样的人,以为精通一些看似复杂的命令行,或者某些难用的程序语言就很了不起似的。他们如果听说你不知道某个命令的用法,那简直就像法国人不知道拿破仑,美国人不知道华盛顿一样。这些人没有发现,自己身边有些同事其实掌握着精髓的知识,他们完全有能力从自己已有的知识,衍生制造出所有这些工具,而不只是使用它们,甚至设计得更加完善和方便易用。



    受教了
    holong2000
        29
    holong2000  
       2017-03-17 12:57:31 +08:00   ❤️ 1
    技术领域的鄙视链条其实是个循环,任何一个位置,既是某个的上家,也是某个的下家。
    tony1016
        30
    tony1016  
       2017-03-17 13:05:04 +08:00
    是我没有 get 吗, nohup 和 tmux 有啥关系??
    QAPTEAWH
        31
    QAPTEAWH  
       2017-03-17 13:10:14 +08:00
    @tony1016 要么用 nohup ,要么用 tmux ,都能使后台&不被清掉
    QAPTEAWH
        32
    QAPTEAWH  
       2017-03-17 13:10:45 +08:00
    @holong2000 技术鄙视其实是个图,然后不懂图是要被鄙视的
    glasslion
        33
    glasslion  
       2017-03-17 13:57:11 +08:00
    标题太 UC 了, 但道理是对的。要改成 DBA 不会用 tmux , screen 和 nohup , 喷子会不会少点 ;-)
    glasslion
        34
    glasslion  
       2017-03-17 13:59:19 +08:00
    @QAPTEAWH
    @webjin1
    @lululau

    没有 nohup , shell 退出后, 子进程是有可能被杀掉的
    solrted
        35
    solrted  
    OP
       2017-03-17 14:08:12 +08:00 via Android
    @zander1024 我当面说过他这样断线之后就没了,他说他试过可以的。。。
    terryhyx
        36
    terryhyx  
       2017-03-17 14:22:30 +08:00
    作为 DBA 赶脚受到了 1w 点伤害
    psfang
        37
    psfang  
       2017-03-17 14:31:25 +08:00
    楼主,你同事说断线之后可以是不是因为这个:
    huponexit off

    之前同事遇到找我,记录了一下:
    http://fangpeishi.com/centos_huponexit_off.html
    loading
        38
    loading  
       2017-03-17 14:31:45 +08:00 via Android
    术业有专攻
    firefox12
        39
    firefox12  
       2017-03-17 14:51:17 +08:00 via iPhone
    他不会用 tmux 并不要紧,为什么没人吐槽 只用& 仍然有可能造成执行断开?

    如果他做的事 不对,应该给他指出啊
    wuxqing
        40
    wuxqing  
       2017-03-17 14:52:22 +08:00
    @500miles 垠神 这话还是有些偏颇。就好比一个人掌握了造车的精髓知识,且不说他是否真能造出一辆好车,但他不一定是好司机呀,车开不好就是开不好,搬出我懂 XXX ,能造出更的好车,有意思吗?
    likuku
        41
    likuku  
       2017-03-17 14:57:14 +08:00
    DBA 干嘛要会运维?脚本写好,测试 OK ,交给运维去执行呗。
    likuku
        42
    likuku  
       2017-03-17 15:02:53 +08:00   ❤️ 1
    @500miles “垠神” ? 呵呵,嘴炮王的娱乐文,也认真就笑了...

    雕虫小技也罢,奇技淫巧也罢,某些场合的确不用就存在巨大风险,比如题主写的这个状况。
    wudanyang
        43
    wudanyang  
       2017-03-17 15:18:57 +08:00
    难道他执行出错了?
    ETO
        44
    ETO  
       2017-03-17 15:20:50 +08:00
    我觉得你可以当面跟他说一下啊。
    solrted
        45
    solrted  
    OP
       2017-03-17 15:46:27 +08:00 via Android
    @psfang 是的,这样也可以,我问他了没有设置这个
    iugo
        46
    iugo  
       2017-03-17 16:19:21 +08:00
    如果被鄙视得有原因, 我想我还是接受的...

    比如我不知道 tmux 这个命令(现在知道了). 知道 screen 还是从以前的 lnmp.
    jyf007
        47
    jyf007  
       2017-03-17 17:00:13 +08:00 via Android
    确实因为经常断线所以用了 tmux ,不过我司的 dba 会用 nohup (逃
    sammo
        48
    sammo  
       2017-03-17 17:06:48 +08:00 via iPhone
    我知道 nohup &
    谁能告诉我借助 tmux ,最常用的 5 条命令是什么及这 5 条命令的作用?
    linhua
        49
    linhua  
       2017-03-17 17:11:40 +08:00
    其实 有的程序 用 nohup 也不能 防止 断线中断, 还有一个 disown

    用 nohup & 之后, 用 fg 还能查看到,还在 任务列表里

    然后 nohup & disown 比较保险
    yanze0613
        50
    yanze0613  
       2017-03-17 17:32:54 +08:00
    我也不会啊,没毛病
    HarveyDent
        51
    HarveyDent  
       2017-03-17 17:39:23 +08:00
    会这些东西是一个 DBA 基本的职业要求吗?难道写脚本的人没有义务保证脚本简单易用不容易出错?对自己程序的要求也太低了吧。
    @likuku
    est
        52
    est  
       2017-03-17 17:45:08 +08:00
    最神奇的是这破帖子居然要翻页了。
    wweir
        53
    wweir  
       2017-03-17 17:49:27 +08:00
    disown 完事。
    不过 DBA 作为运维的一个分支,不会操作系统的基本操作,过分了
    zhangsen1992
        54
    zhangsen1992  
       2017-03-17 17:54:34 +08:00
    可能只是懒得安装 tmux
    deepjia
        55
    deepjia  
       2017-03-17 18:03:55 +08:00
    @solrted
    大多数发行版都是 huponexit 默认为 off 的吧,我还没遇到过不是的
    LCD
        56
    LCD  
       2017-03-17 18:34:41 +08:00 via Android
    这破贴居然要翻页。。。
    g0thic
        57
    g0thic  
       2017-03-17 18:54:49 +08:00
    likuku
        58
    likuku  
       2017-03-17 20:01:36 +08:00
    @HarveyDent 就事论事好嘛,题主里写是 DBA 自己写脚本, DBA 自己执行。
    billlee
        59
    billlee  
       2017-03-17 20:11:40 +08:00
    r#48 @linhua 对对对,我以前也经常遇到 nohup 后还是中断了
    solrted
        60
    solrted  
    OP
       2017-03-17 20:19:20 +08:00 via Android
    @sammo 1 tmux attach 恢复默认 sessions
    2 ctrl + b d 放入后台,退出 tmux
    3 ctrl + b c 新建一个 tmux 标签叶
    4 ctrl + b 0 或者数字 切换到对应标签页
    5 ctrl + b [ 进入复制模式, 上下键或者 page up/down 键翻页 查看屏幕外的信息
    sammo
        61
    sammo  
       2017-03-17 21:57:24 +08:00 via iPhone
    @solrted 谢谢!!了解了
    args
        62
    args  
       2017-03-18 00:56:10 +08:00
    没啥好说的。这个 DBA 不够专业。
    cxmtime
        63
    cxmtime  
       2017-03-18 04:51:01 +08:00
    没啥好说的。不用 tmux 是他的损失。
    NoAnyLove
        64
    NoAnyLove  
       2017-03-18 05:03:25 +08:00
    我会 tmux 。

    我现在就想知道,如果我 ssh 登录服务器,不加 nohup ,使用`&`把程序放在后台执行。如果在执行过程中我登出了 ssh ,执行中的程序会不会被终止?
    ebony0319
        65
    ebony0319  
       2017-03-18 08:25:21 +08:00
    <h1>DBA 不可不知的...</h1>
    <h1>DBA 不一定要知道的...</h1>
    <h1>DBA 你一定没有看过的...</h1>
    <h1>DBA,看完眼眶湿湿的</h1>
    <h1>DBA20 岁以前必看</h1>
    <h1>DBA ,我怎么没早点发现这个</h1>
    sammo
        66
    sammo  
       2017-03-18 09:26:26 +08:00
    @tony1016 你运行命令的父进程 是 screen 、 tmux 、 nohup ,你的 ssh 中的 shell 退出就不影响命令继续运行了
    changwei
        67
    changwei  
       2017-03-18 09:41:12 +08:00 via Android
    不懂 nohup 应该是 linux 和相关知识不熟悉吧。还有这种事情应该去吐槽招他进来的人啊,吐槽他本人已经没什么意义了。
    watzds
        68
    watzds  
       2017-03-18 10:26:34 +08:00 via Android
    sql.sh 里是什么内容,有可能不会中断吧?
    xuboying
        69
    xuboying  
       2017-03-18 11:10:30 +08:00 via Android
    干嘛关心人家用啥工具。你只要逼他出结果并批评做的慢就行了。才没功夫去教别人。
    shuxiao9058
        70
    shuxiao9058  
       2017-03-18 13:56:59 +08:00
    都可以实现同样目的,干嘛在意别人用啥工具。
    introom
        71
    introom  
       2017-03-18 15:20:32 +08:00 via Android
    不至于专门发个帖子,每个人会的不一样。说到 nohup, 我可以开个帖子写写 kernel 对 signal 的处理,可以让很多人重新做人,不过何必呢。
    20150517
        72
    20150517  
       2017-03-18 16:11:01 +08:00 via iPhone
    谁来说下&和 nohup 区别吗?
    binux
        73
    binux  
       2017-03-18 16:41:46 +08:00 via Android   ❤️ 1
    我支持 LZ ,这不是工具会不会用的问题。 DBA 需要保证他执行的命令不会因为 ssh 断线退出,这是基本职业技能,不管他用什么方式解决。
    WildCat
        74
    WildCat  
       2017-03-18 16:46:54 +08:00
    Docker 的原理就是建立一些目录,把系统文件和相关库代码拷贝进去,然后 chroot ,这样你的代码在里面运行的时候,就以为自己独占一个 Linux 系统。 Shell 语言之恶劣,我已经有专文介绍,所以就不多说了。本来可以用 shell 脚本实现的项目,现在有人用 Go 来做,能说明 Go 是一个好的语言吗?
    WildCat
        75
    WildCat  
       2017-03-18 16:48:35 +08:00
    wdlth
        76
    wdlth  
       2017-03-18 19:57:01 +08:00
    不知道为什么 DBA 用 Shell 脚本,而不使用数据库的计划任务?
    julyclyde
        77
    julyclyde  
       2017-03-18 21:20:49 +08:00
    我惊呆了
    你啥都不懂还好意思指责别人?

    你 nohup 了那还看不看执行结果了!
    bao3
        78
    bao3  
       2017-03-19 07:04:48 +08:00
    DBA 只要能操作好 BASE 就好了, shell 这类的交给运维。术页有专攻,不会很正常,像我这样既可以操作 PLC 又可以上高铁调信号还可以写写脚本的销售也是不多,经常也会觉得一些基本常识其他人都不具备。但是真的没什么好指责的,专业不同而已。
    guokeke
        79
    guokeke  
       2017-03-19 11:52:57 +08:00
    & 只是放到后台运行,进程依然会接受内核的挂起信号。
    nohup 可以让进程忽略来自内核的挂起信号。

    ps 我是 screen 党。
    shadownet
        80
    shadownet  
       2017-03-19 13:41:11 +08:00 via iPhone
    @julyclyde 执行结果和 nohup 有什么必然联系? 科普下?
    julyclyde
        81
    julyclyde  
       2017-03-20 18:00:37 +08:00
    @shadownet 既然用 nohup ,肯定是为了扛 hup 信号了。那 hup 信号哪儿来的呢?是 hang up 这个动作,也就是挂断虚拟终端这个动作,也就是断开 ssh 连接这个动作。既然断开了肯定看不到结果啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2691 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 15:28 · PVG 23:28 · LAX 08:28 · JFK 11:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.