FreeBSD使用Screen


因为安全原因一般对服务器的访问都是有非常严格的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搞东西时,就不需要以前那样额外多增加一个终端来保持登录状态了。

I. 安装Screen

    # cd /usr/ports/sysutils/screen
    # make install clean

II. 使用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


「倘若有所帮助,不妨酌情赞赏!」

Holmesian

感谢您的支持!

使用微信扫描二维码完成支付


相关文章

发表新评论