linux d13 Tmux、 Apache

不间断会话服务

大家在学习sshd服务时,不知有没有注意到这样一个事情:当与远程主机的会话被关闭时,在远程主机上运行的命令也随之被中断。

如果正在使用命令来打包文件,或者正在使用脚本安装某个服务程序,中途是绝对不能关闭在本地打开的终端窗口或断开网络连接的,甚至连网速的波动都有可能导致任务中断,此时只能重新进行远程连接并重新开始任务。还有些时候,我们正在执行文件打包操作,同时又想用脚本来安装某个服务程序,这时会因为打包操作的输出信息占满用户的屏幕界面,而只能再打开一个执行远程会话的终端窗口。时间久了,难免会忘记这些打开的终端窗口是做什么用的了。

Terminal Multiplexer(终端复用器,简称为Tmux)是一款能够实现多窗口远程控制的开源服务程序。简单来说就是为了解决网络异常中断或为了同时控制多个远程终端窗口而设计的程序。用户还可以使用Tmux服务程序同时在多个远程会话中自由切换,能够实现如下功能。

会话恢复:即便网络中断,也可让会话随时恢复,确保用户不会失去对远程会话的控制。

多窗口:每个会话都是独立运行的,拥有各自独立的输入输出终端窗口,终端窗口内显示过的信息也将被分开隔离保存,以便下次使用时依然能看到之前的操作记录。

会话共享:当多个用户同时登录到远程服务器时,便可以使用会话共享功能让用户之间的输入输出信息共享。

在RHEL 8系统中,默认没有安装Tmux服务程序,因此需要配置软件仓库来安装它。配置软件仓库的步骤请见8.3.2节,BaseOS和AppStream都要配置,这里直接开始安装Tmux:

dnf install tmux

管理远程会话

Tmux服务能做的事情非常多,例如创建不间断会话、恢复离线工作、将界面切分为不同的窗格、共享会话等。下面直接敲击tmux命令进入会话窗口中,

会话窗口的底部出现了一个绿色的状态栏,里面分别显示的是会话编号、名称、主机名及系统时间。

退出会话窗口的命令是exit,敲击后即可返回到正常的终端界面

会话窗口的编号是从0开始自动排序(即0、1、2、3、……),会话窗口数量少的时候还没关系,数量多的时候区分起来就很麻烦了。接下来创建一个指定名称为backup的会话窗口。请各位读者留心观察,当在命令行中敲下下面这条命令的一瞬间,屏幕会快速闪动一下,这时就已经进入Tmux会话中了,在里面执行的任何操作都会被后台记录下来。

[root@linuxprobe ~]# tmux new -s backup

假设我们突然要去忙其他事情,但会话窗口中执行的进程还不能被中断,此时便可以用detach参数将会话隐藏到后台。虽然看起来与刚才没有不同,但实际上可以看到当前的会话正在工作中:

[root@linuxprobe ~]# tmux detach
[detached (from session backup)]

如果觉得每次输入detach参数都很麻烦,可以直接所示关闭中断窗口(这与进行远程连接时突然断网具有相同的效果),Tmux服务程序会自动帮我们进行保存。

这样操作之后,服务和进程都会一直在后台默默运行,不会因为窗口被关闭而造成数据丢失。不放心的话可以查看一下后台有哪些会话:

[root@linuxprobe ~]# tmux ls
backup: 1 windows (created Thu Jan 28 15:57:40 2021) [80x23]

在传统的远程控制中,如果突然关闭会话窗口,一定会导致正在运行的命令也突然终止,但是在Tmux的不间断会话服务中则不会这样。我们只需查看一下刚刚关闭的离线会话名称,然后尝试恢复回来,这个会话就可以继续工作了。回归到backup会话中的方法很简单,直接在tmux命令后面加attach和会话编号或会话名称就可以。关闭会话窗口之前正在进行的一切工作状态都会被原原本本地呈现出来,丝毫不受影响:

[root@linuxprobe ~]# tmux attach -t backup

如果不再需要使用这个Tmux会话了,也不用先在tmux命令后面添加attach,再执行exit命令退出,而是可以直接使用kill命令杀死这个会话。

[root@linuxprobe ~]# tmux attach -t backup
[exited]
[root@linuxprobe ~]# tmux ls
no server running on /tmp/tmux-0/default

在日常的生产环境中,其实并不是必须先创建会话,然后再开始工作。可以直接使用tmux命令执行要运行的指令,这样命令中的一切操作都会被记录下来,当命令执行结束后,后台会话也会自动结束。

[root@linuxprobe ~]# tmux new "vim memo.txt"

管理多窗格

在实际工作中,一个Shell终端窗口总是不够用,这怎么办呢?Tmux服务有个多窗格功能,能够把一个终端界面按照上下或左右进行切割,从而使得能同时做多件事情,而且之间互不打扰,特别方便。

会话共享功能

Tmux服务不仅可以确保用户在极端情况下也不丢失对系统的远程控制,保证了生产环境中远程工作的不间断性,而且它还具有会话共享、分屏切割窗格、会话锁定等实用的功能。其中,会话共享功能是一件很酷的事情,当多个用户同时控制服务器的时候,它可以把服务器屏幕内容共享出来。也就是说,每个用户都能够看到相同的内容,还能一起同时操作。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值