solrted
V2EX  ›  数据库

DBA 不会用 tmux

  •  
  •   solrted · Mar 17, 2017 · 7099 views
    This topic created in 3522 days ago, the information mentioned may be changed or developed.
    让 DBA 执行一个修改表结构的脚本,表很多,而且大,耗时要很久,我说怕断线你开 screen 或者 tmux ,
    我给他开了 tmux ,他退出去然后用了这个命令

    bash sql.sh &

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

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

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

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

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

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



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

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

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

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

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

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

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

    然后 nohup & disown 比较保险
    yanze0613
    yanze0613
    Mar 17, 2017
    50
    我也不会啊,没毛病
    HarveyDent
    HarveyDent
    Mar 17, 2017
    51
    会这些东西是一个 DBA 基本的职业要求吗?难道写脚本的人没有义务保证脚本简单易用不容易出错?对自己程序的要求也太低了吧。
    @likuku
    est
    est
    Mar 17, 2017
    52
    最神奇的是这破帖子居然要翻页了。
    wweir
    wweir
    Mar 17, 2017
    53
    disown 完事。
    不过 DBA 作为运维的一个分支,不会操作系统的基本操作,过分了
    zhangsen1992
    zhangsen1992
    Mar 17, 2017
    54
    可能只是懒得安装 tmux
    deepjia
    deepjia
    Mar 17, 2017
    55
    @solrted
    大多数发行版都是 huponexit 默认为 off 的吧,我还没遇到过不是的
    LCD
    LCD
    Mar 17, 2017 via Android
    56
    这破贴居然要翻页。。。
    g0thic
    g0thic
    Mar 17, 2017
    57
    翻
    likuku
    likuku
    Mar 17, 2017
    58
    @HarveyDent 就事论事好嘛,题主里写是 DBA 自己写脚本, DBA 自己执行。
    billlee
    billlee
    Mar 17, 2017
    59
    r#48 @linhua 对对对,我以前也经常遇到 nohup 后还是中断了
    solrted
    solrted
    OP
    Mar 17, 2017 via Android
    60
    @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
    sammo
    Mar 17, 2017 via iPhone
    61
    @solrted 谢谢!!了解了
    args
    args
    Mar 18, 2017
    62
    没啥好说的。这个 DBA 不够专业。
    cxmtime
    cxmtime
    Mar 18, 2017
    63
    没啥好说的。不用 tmux 是他的损失。
    NoAnyLove
    NoAnyLove
    Mar 18, 2017
    64
    我会 tmux 。

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

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

    ps 我是 screen 党。
    shadownet
    shadownet
    Mar 19, 2017 via iPhone
    80
    @julyclyde 执行结果和 nohup 有什么必然联系? 科普下?
    julyclyde
    julyclyde
    Mar 20, 2017
    81
    @shadownet 既然用 nohup ,肯定是为了扛 hup 信号了。那 hup 信号哪儿来的呢?是 hang up 这个动作,也就是挂断虚拟终端这个动作,也就是断开 ssh 连接这个动作。既然断开了肯定看不到结果啊
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1620 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 206ms · UTC 02:12 · PVG 10:12 · LAX 18:12 · JFK 21:12
    ♥ Do have faith in what you're doing.