一、screen使用
系统管理员经常需要SSH远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如训练模型、ftp等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。
GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
1、安装screen工具
ubuntu:
sudo apt install -y screen
centos:
sudo yum install -y screen
ubuntu安装screen
2、语法
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]
screen --help #查看帮助
参数说明:
-A 将所有的视窗都调整为目前终端机的大小。
-d<作业名称> 将指定的screen作业离线。
-h<行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r<作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s<shell> 指定建立新视窗时,所要执行的shell。
-S<作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
3、常用命令
screen -S name #创建一个名为name的session
screen -r name #进入名为name的session
screen -ls #查看当前服务器当中所有的session
screen -d name #detach掉name的session
screen -d -r name #结束当前session并回到yourname这个session
4、智星云平台中使用
通过ssh登录到linux云平台上
在终端创建screen的test作业,自动进入这个session,screem -S test
执行screen -S test命令
在运行自己的命令,watch nvidia-smi
在screen中执行命令
按ctrl+A+D退出这个session,回到主终端可以进行其他的操作
通过screen -ls查看后台任务
screen 查看任务
如果想回到之前的session查看运行结果,就使用screen -r 10292.test重新进入。
二、ssh设置超时
1、服务端可以修改sudo vim /etc/ssh/sshd_config
找到下面两行内容并修改,并将注释符号(”#”)去掉,
ClientAliveInterval 0
ClientAliveCountMax 3
将ClientAliveInterval对应的0改成60,
编辑sshd_config
编辑sshd_config
ClientAliveInterval指定了服务器端向客户端请求消息 的时间间隔, 默认是0, 不发送。
ClientAliveInterval 60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了。
ClientAliveCountMax, 使用默认值3即可。
ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开。
正常情况下, 客户端不会不响应。
保存文件,重起sshd服务:sudo systemctl restart sshd.service
2、客户端工具设置
CRT终端连接设置
右击Session中的连接,选择Properties->Terminal->Anti-idle->勾选Send protocol NO-OP
当已经建立连接的情况,可以通过上面方法,另外也可以通过点击Options->Session Options->Terminal->Anti-idle->勾选Send protocol NO-OP
选中之后,后面显示60秒是默认值,可对其进行增减,只要这个时间段小于自动断开连接的时间就可以了
CRT设置
xshell终端连接设置,文件-> 属性
xshell设置
MobaXterm客户端,那么需要在设置里点选setting>SSH>sessions setting>勾选ssh Keepalive
MobaXterm设置