大家好,又见面了,我是你们的朋友全栈君。
Linux lrzsz命令的使用和背后原理探究
当我们利用Xshell对Linux服务器进行操作时,常常苦恼本地和服务器之间互相传文件的问题,即使有如Winscp这样的工具,但是当在服务器上使用虚拟机的时候,配置FTP就显得比较麻烦了,因此有Lrzsz这样的工具能够帮助我们上传下载一些体量不是很大的文件。
安装LRZSZ
代码语言:javascript复制sudo apt-get install lrzsz
如果不是Ubuntu系统,可以
代码语言:javascript复制sudo yum install lrzsz
还可以通过手动安装的方式,先下载.tar.gz的压缩包
代码语言:javascript复制tar zxvf lrzsz-0.12.20.tar.gz
cd lrzsz-0.12.20
./configure
make
make install
cd /usr/bin
ln -s /usr/local/bin/lrz rz
ln -s /usr/local/bin/lsz sz
使用LRZSZ
下载文件:
代码语言:javascript复制sz xxx
(xxx指要下载的文件),如果想要下载整个文件夹,可以先使用zip等压缩命令将整个文件夹压缩成文件再进行下载,通过对话框选择下载目的地
上传文件:
代码语言:javascript复制rz
这时候会弹出一个对话框,选择要上传的文件即可,若要保证上传的文件在服务端中保存和源文件一致,则可以使用二进制上传
代码语言:javascript复制rz -be
常用参数 -b 以二进制方式,默认为文本方式。(Binary (tell it like it is) file transfer override.) -e 对所有控制字符转义。(Force sender to escape all control characters; normally XON, XOFF, DLE, CR-@-CR, and Ctrl-X are escaped.)
背后原理探究 通过一番百度谷歌,大致的了解了一下lrzsz背后的原理机制
引用https://blog.csdn.net/u013030100/article/details/80347965: rz可以批量上传文件,也可以上传单个文件。使用的协议是ZMODEM协议。 (下面部分是从网上摘的)
ZMODEM 协议的介绍 :https://blog.csdn.net/ligerendaqiu123/article/details/44964791
下面简单说下ZModem协议的事情,先得从XMODEM协议(XMODEM Protocol)说起。XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数 据,并且每个块都使用一个校验和过程来进行错误检测。如果接收方关于一个块的校验和与它在发送方的校验和相同时,接收方就向发送方发送一个认可字节。然 而,这种对每个块都进行认可的策略将导致低性能,特别是具有很长传播延迟的卫星连接的情况时,问题更加严重。 使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K,它以1024字节一块来传输数据。 YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征,另外在一次单一会话期间为发送一组文件,增加了批处理文件传输模式。 ZMODEM是最有效的一个XMODEM版本,它不需要对每个块都进行认可。事实上,它只是简单地要求对损坏的块进行重发。ZMODEM对按块 收费的分组交换网络是非常有用的。不需要认可回送分组在很大程度上减少了通信量。它是Xmodem 文件传输协议的一种增强形式,不仅能传输更大的数据,而且错误率更小。包含一种名为检查点重启的特性,如果通信链接在数据传输过程中中断,能从断点处而不 是从开始处恢复传输。
在传小文件的时候大家可以选择lrzsz,操作十分方便,配合Xshell可以直接拖入。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/152488.html原文链接:https://javaforall.cn