远程连接自动断开的问题解决办法
文章目录
1. 问题描述
我们都知道,作为服务器,默认一般都是被动的等待客户端的连接到来。但对基于ssh协议的xshell的运用,总是出现自动断开的情况。
但是我们经常需要运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。
2. 解决办法
可以将该会话“保存”,只要远程服务器不关闭,该会话就一直进行,下次需要的时候 重新连接即可。那么如何保存当前会话呢?
答案就是神器:screen
2.1. screen解决方案
先看其简介:
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
由简介我们知道,screen可以在不同回话之间切换,那么,我们利用它的这个性能,把需要的会话“保存”,等到第二天用的使用再“切换”回 当时的会话即可。
怎么操作呢?我们先看一个简单粗暴地例子:我需要运行一个跑一夜的程序,那么在巡行程序之前先进行一步操作:
screen -S myOneNight
这句话的意思是,创建了一个叫 myOneNight 的screen作业会话。- 现在,再执行你的 运行一夜的代码。。。。
- 关机,或者去玩其他事情。
- 第二天,再打开shell 运行命令:
screen -r myOneNight
我们发现,昨天的程序还在正常运行。爽。
3. screen详解
3.1 安装screen
其实流行的Linux发行版(例如Red Hat Enterprise Linux)通常会自带screen实用程序,如果没有的话,可以从GNU screen的官方网站下载。
[root@TS-DEV ~]# yum install screen
[root@TS-DEV ~]# rpm -qa|grep screen
screen-4.0.3-4.el5
[root@TS-DEV ~]#
有时候生产环境没有互联网权限,离线安装的方法:
# http://ftp.gnu.org/gnu/screen/下载screen-4.6.0.tar.gz安装包
tar -xvf screen-4.6.0.tar.gz
cd screen-4.6.0
./configure
make
make install
install -m 644 etc/etcscreenrc /etc/screenrc
cp ./screen /bin
# 最后两步需要root权限
3.2 创建一个新的窗口
安装完成后,直接敲命令screen就可以启动它。但是这样启动的screen会话没有名字,实践上推荐为每个screen会话取一个名字,方便分辨:screen -S david
3.3 常用的命令
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session
screen的选项:
-A 将所有的视窗都调整为目前终端机的大小。
-d <作业名称> 将指定的screen作业离线。
-h <行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s 指定建立新视窗时,所要执行的shell。
-S <作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
4 引用
screen还有更加丰富的 高级用法,请参考:
- GNU’s Screen 官方站点:http://www.gnu.org/software/screen/
- screen 常用工具命令:http://man.linuxde.net/screen
原文链接:https://lookme.blog.csdn.net/article/details/80009427
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
还没有人抢沙发呢~