Chinaunix

标题: screen--远程操作防断线的绝妙工具 [打印本页]

作者: lionvor    时间: 2009-08-28 00:22
标题: screen--远程操作防断线的绝妙工具
    每一个系统管理员都可能经历过因为网络闪断而导致终端中正在执行的任务被中断的情况,又或者现在还被这个问题深深地困扰,为了摆脱这个困扰,我们都会选择使用后台执行的方式来避免网络中断导致任务中断的问题,然而很多任务是无法使用后台执行的,例如某些在执行的某个中间阶段需要我们做出选择或输入参数的一些脚本或一些程序,那么对于这些必须前台执行的脚本或程序,有没什么办法可以摆脱网络中断导致任务中断的困扰呢?screen就是这个问题的答案。
    screen可以起到类似跳板或中转站的作用,我们可以随时断开与screen终端的连接而screen中的前台任务继续执行,我们只需在要执行任务的系统中启动一个screen,然后登入screen中执行任务,在这样的情况下,即使我们到远程服务器的连接被断开了,由于我们的任务是通过远程服务器的screen连到远程服务器终端来执行的,只要screen程序未被杀死,那么程序将被继续执行,RHEL5(其他linux发行版本未做测试)系统光盘中已经自带screen的安装包了,如果有yum源,直接执行yum install screen安装即可,或找到screen的rpm包及其关联包安装即可。
    screen带给我们强大的防断线导致任务中断的功能同事也存在一些小的问题,目前所知的有某些命令在screen中执行会导致screen的当前窗口停止响应,比如rz,sz等命令,还有就是在screen中export命令好像也是无效的。
下面是RHEL5中一些常用的screen命令:
1、screen常用命令:
screen  新建screen并登陆到其中
screen -t win 创建一个以win作为默认窗口标题的screen并登陆到其中
screen -list 列出screen列表
screen -wipe 清理僵死的screen窗口
screen -r [pid] 连接到当前无用户在连接的对应pid的screen,pid可以通过screen -list获得
screen -x [pid] 连接到对应pid的screen,不论当前有无用户已连接其中
2、screen窗口内部常用命令:
先按CTRL+a,然后松开再按下面的键:
c 创建新的screen窗口并切换到其中
K 杀死当前screen窗口
" 列出当前screen窗口列表
' 输入screen窗口号码或名称的提示符
0 选择0号窗口
...
9 选择9号窗口
A 设置当前screen窗口的标题
d 断开与当前scree终端的连接
DD 断开与当前screen终端的连接并注销

    如果各位看官有更好的解决断线导致任务中断的方法,欢迎讨论。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/67390/showart_2039202.html




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2