tmux终端复用器的使用
1.tmux的概念
tmux,“Terminal MultipleXer”,意思是"终端复用器"。是一个可以让人们通过一个窗口操作多个会话的工具,对于经常操作Linux系统的运维人员来说,绝对是一款提高工作效率的利器。
2.tmux能帮助我们解决什么问题?
凡是互联网行业的从业者,无论是做运维的同学,还是做开发的同学,一般都是在自己的工作电脑上安装远程连接工具(如 iTerm、putty、XShell、SecureCRT 等),远程登录到公司服务器上,进行具体的操作,而其中一些操作的耗时会很长。
在这期间,一旦我们的远程连接工具所在的工作电脑出现断网或断电的情况,那么很多耗时较长的操作就会因此中断,这是所有运维、开发同学都很头疼的一个问题。下面,我们就先给大家列出一些典型的痛点。
痛点一:大数据传输的漫长一夜
相信做过 Linux 服务运维的同学,都用 scp 进行过服务器间的大文件网络传输。一般这需要很长的时间,这期间,如果工作电脑出现断网或者断电的情况,则会导致远程连接工具无法与服务器通信,从而使得它所控制的数据传输也因此中断。
情景再现:
localhost:~ roc$ ls -hl
total 36419584
-rw------- 1 roc staff 17G 1 20 11:06 win7.vdi
localhost:~ roc$ scp -P 22000 win7.vdi [email protected]:/home/roc
win7.vdi 0% 7296KB 800.3KB/s 6:19:05
一个 17GB 的大文件,刚刚开始传输,预估耗时 6 小时 19 分钟,谁能保证中间不出现关机和断电的情况呢。
有些同学说可以用 nohup 来解决啊,是的,这是一个办法,可是使用 nohup 的问题在于如果同时传输的任务众多,则最后你自己可能都分不清哪个任务对应哪个传输了,何况 nohup 还会留下 nohup.out 这么一个临时文件在那里。
扩展:nohup命令
nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
还有同学说,即使中断了,也可以断点续传啊。可惜的是,scp 并不支持断点续传。如果改用 rsync 倒是可以,可惜 rsync