FreeBSD使用Screen
注意:本文最后更新于 2717 天前,有关的内容可能已经发生变化,请参考使用。
因为安全原因一般对服务器的访问都是有非常严格的IP限制的,但是为了方便随时随地的迅速响应我在防火墙上开放了通过CMNET网段访问服务器SSH的权限。这么一来由PPC上的PoketPutty直接访问和操作服务器或者是通过手机CMNET带动笔记本访问服务器都要方便很多。
由于以前在freebsd下使用SSH远程登录时基本上都是良好的网络环境,很少出现非正常中断的现象。但是使用CMNET访问服务器之后,由于CMNET的带宽和不稳定性(瞬时带宽不足或者基站切换都可能会导致导致CMNET连接IP更换)连接非正常中断的概率要大大提高。而如果一旦连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的 session,最终将导致服务器系统上遗留了不少失效的Session。
Holmesian pts/0 Aug 26 09:42 (117.136.21.200)
Holmesian pts/1 Aug 26 09:45 (117.136.21.219)
liaux pts/3 Aug 25 12:43 (202.101.208.90)
Holmesian pts/7 Aug 26 10:17 (117.136.21.162:S)
Holmesian pts/8 Aug 26 10:18 (117.136.21.162:S)
虽然可以通过设置SSH的超时来自动清理这些无效的Seesion,但是无效的Session遗留在系统上总会感觉不爽。这个时候screen命令就华丽丽地登场了:
Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用。通过Screen工具在ssh搞东西时,就不需要以前那样额外多增加一个终端来保持登录状态了。
安装Screen
# cd /usr/ports/sysutils/screen
# make install clean
使用Screen
# screen
以下^A表示同按“Ctrl + A”键
# ^A c //Create,开出新的 window
# ^A n //Next,切换到下个 window
# ^A p //Previous,前一个 window
# ^A ^A //在两个 window 间切换
# ^A w //Windows,列出已开启的 windows 有那些
# ^A 0…9 //切换到第 0..9 个 window
# ^A t //Time,显示目前的时间,与系统的 load
# ^A K //kill window,强制关掉目前的 window
# ^A ? //Help,显示简单说明
# ^A d //detach,将目前的 screen session (可能含有多个 windows) 丢到背景执行
# screen -ls //显示所有的 screen sessions
# screen -r [keyword] //选择一个 screen session 回来 (捡回来) , 恢复离线的screen作业, 单独输入 screen -r 也行的,通过这个功能就可以捡回之前断线的Session
「倘若有所帮助,不妨酌情赞赏!」
感谢您的支持!
使用微信扫描二维码完成支付