Linux中使用lrzsz进行文件传输
在服务器使用过程中,经常回遇到需要在Linux和Windows之间文件传输的情况,一般都是使用FTP或WinSCP进行文件传输,但是这些工具需要在本地安装客户端并进行配置之后才能使用
lrzsz是Linux中上传下载的工具,安装即用,不需要任何的配置,就能方便快捷的在Linux和Windows之间传输文件
lrzsz使用了XMODEM、YMODEM和ZMODEM文件传输协议来实现文件的传输,目前主流的SSH连接工具(SecureCRT、XShell等)都支持这些协议
工具安装:yum install -y lrzsz
安装完成之后,输入 "sz --v" 或者 "rz --v" 命令,如果输出版本号,则表示安装成功
设置上传下载目录
在使用rz/sz命令之前,需要先在SSH工具的设置上传下载目录,下面以SecureCRT为例:在SecureCRT中打开一个SSH会话后,打开"会话选项"窗口,终端 -> X/Y/Zmodem , 设置上传和下载目录
上传文件:rz [options]
执行rz命令之后,弹出选择文件窗口,选择要上传的文件,点击添加,可以添加多个文件,最后点击确认,添加的所有文件会上传到Linux终端当前所在目录中
如果Linux终端当前目录已经存在同名文件了,默认不会执行上传,要使用 -y 选项才会覆盖上传
-+, --append :如果文件已存在,则以追加模式写入 -a, --ascii :以ASCII(文本)方式传输(根据系统自动切换\r\n和\n) -b, --binary :以二进制方式传输,保持原始内容不作任何更改 -D, --null :将所有接收到的数据写入/dev/null --delay-startup N :延迟N秒执行操作 -e, --escape :转义控制字符 -E, --rename :重命名任何已存在的文件 -m, --min-bps N :每秒传送的比特(bit)数小于N则停止传输 -O, --disable-timeouts :禁用超时,永远等待数据 --o-sync :在同步写入模式下打开输出文件 -p, --protect :保护现有文件,文件已存在不执行操作,默认开启该选项 -q, --quiet :安静模式,没有进度报告 -r, --resume :尝试恢复中断的文件传输 -s, --stop-at HH:MM :在指定时间停止传输 -s, --stop-at +N :在N秒后停止传输 -t, --timeout N :将超时设置为十分之N秒 -y, --overwrite :如果文件已存在则覆盖
下载文件:sz [options] files
执行sz files命令之后,Linux上的指定文件会下载至我们设定的本地默认下载目录中
files可以是多个文件名,用空格隔开 files也可以使用通配符星号(*),如sz *.txt会下载当前所在目录中的所有txt后缀的文件
-+, --append :追加模式 -4, --try-4k :尝试使用4K每块进行传输 --start-4k :强制使用4K每块进行传输 -8, --try-8k :尝试使用8K每块进行传输 --start-8k :强制使用8K每块进行传输 -a, --ascii :ASCII(文本)方式 -b, --binary :二进制方式 --delay-startup N :延迟N秒执行操作 -e, --escape :转义控制字符 -E, --rename :重命名任何已存在的文件 -f, --full-path :发送完整路径名 -m, --min-bps N :每秒传送的比特(bit)数小于N则停止传输 -n, --newer :如果源更新则传输文件 -O, --disable-timeouts :禁用超时,永远等待数据 -p, --protect :保护现有文件,文件已存在不执行操作,默认开启该选项 -r, --resume :尝试恢复中断的文件传输 -q, --quiet :安静模式,没有进度报告 -s, --stop-at HH:MM :在指定时间停止传输 -s, --stop-at +N :在N秒后停止传输 -u, --unlink :不传输链接文件 -y, --overwrite :如果文件已存在则覆盖 -Y, --overwrite-or-skip :仅覆盖模式,如果文件已存在则覆盖传输,文件不存在则不传输
Linux上启动了tmux之后,无法使用rz/sz 命令,这是由于tmux不支持Zmodem协议
rz/sz不支持超过4G的文件,上传下载4G及以上大小的文件只能使用FTP或WinScp等工具
关于X/Y/Zmodem
Xmodem:是一种古老的传输协议, 传输速度较慢,但由于使用了CRC错误侦测方法,传输的准确率可高达99.6%。
Ymodem:是Xmodem的改良版,使用了1024位区段传送,速度比Xmodem要快
Zmodem:采用了串流式(streaming)传输方式,传输速度较快,而且还具有自动改变区段大小和断点续传、快速错误侦测等功能
目前Zmodem是使用得最多的,rz/sz 命令就是使用该传输协议的,命令中的 z 表示使用Zmodem协议