zoukankan      html  css  js  c++  java
  • 使用Screen抵御杯具

          当DBA远程做一个大操作的时候最怕的是什么?断网!有木有啊!!

          建一个20G的索引,进度到98%的时候突然断网,前功尽弃,有木有啊!!

          怎么样才能抵御这种杯具呢?找一台Windows的机器作为终端,上面装上SSH工具,那Linux呢?靠它——screen

          Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。简单来说就是一个命令行版本的SecureCRT。     

          当远程会话不幸关闭的时候,screen还能驻留在服务器端,并且很容易地重连(attach),这样就保证我们的工作不会因为网络问题而终端,这是多么好的功能啊。

          键入screen即可使用screen

    [oracle@alifina-dev12 ~]$ screen

          如果报以下错:

    Cannot open your terminal '/dev/pts/10' - please check.

          使用以下命令将输出重定向即可:

    [oracle@alifina-dev12 ~]$ script /dev/null 

          然后我们开始一个任务,譬如用vim写小说,突然抓狂把终端强行关闭了,那时不是之前的努力都没有了呢?

          我们重连一个会话,用以下命令查看并且再次attach即可,我们的成果还在!

    [oracle@alifina-dev12 ~]$ screen -ls
    There is a screen on:
            7366.pts-0.alifina-dev12        (Detached)
    1 Socket in /var/run/screen/S-oracle.
    
    [oracle@alifina-dev12 ~]$ screen -r 7366 

          这绝对是screen的杀手锏功能!!

          screen还能做得更好吗?当然!

          修改~/.screenrc,如果整台服务器都是你用的话也可以修改/etc/screenrc

    ## general tweaks
    vbell off
    autodetach on
    startup_message off
    defscrollback 1000
    attrcolor b ".I"
    termcap xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
    defbce "on" 
    escape "^Kk"
    defencoding UTF-8
    encoding UTF-8 UTF-8
    hardstatus alwayslastline '%{gk}[%= %{wk}%?%-Lw%?%{=b kR}[%{W}%n%f %t%?(%u)%?%{=b kR}]%{= kw}%?%+Lw%?%?%= %{g}]%{=b C}[%m/%d %C%a]%{W}'
    shell -$SHELL
    

          现在screen开起来会像这样:

    Powered By killkill

          看到没,下面那一行彩色的东西,输入Ctrl+k,紧接着马上输入c,多了一个:

    image      输入 Ctrl+k n 就可以移动到下一个window(输入Ctrl+k p是上一个window),功能和SecureCRT的tab一样。

          有朋友会问为什么是Ctrl+k 呢?这个是在screenrc(.screenrc)中定义的,还有个特别的名字——命令键,我受Visual Studio的毒害很深,爱上了Ctrl+k,所以把它设为 Ctrl+k。

          一些有用的操作:

      1. 命令键 A(注意是大写的A,平时输入是shift+A):将window改名。
      2. 命令键 c:创建一个新的window
      3. 命令键 d:detache当前这个screen
      4. 命令键 ?:帮助……
  • 相关阅读:
    微信小程序学习系列(5) 微信小程序逻辑层
    微信小程序学习系列(4) 微信小程序架构文件
    微信小程序学习系列(3) 如何优雅的使用微信开发者工具
    使用Sqlserver 2012 导出表数据为SQL脚本
    Sqlserver2012 使用sql语句增加(或删除)表一个字段
    微信小程序学习系列(2) 使用AppId创建一个微信小程序
    微信小程序学习系列(1) 如何注册微信小程序
    微信小程序如何使用Vant
    vs2017搭建自己的nuget服务器
    使用swagger实现在线api文档自动生成 在线测试api接口
  • 原文地址:https://www.cnblogs.com/killkill/p/2181915.html
Copyright © 2011-2022 走看看