您的位置:首页 > 运维架构 > Linux

secureCRT使用sz/rz命令在Linux和Windows间传输文件失败问题

2018-03-03 14:41 986 查看
sz,rz是Linux/Unix和Windows进行ZModem文件传输的命令行工具。【windows端】需要支持ZModem协议的telnet/ssh客户端(xshell支持)。网上下一个,我用的是SecureCRT,平常用它登陆到Unix/Linux开发机。【linux端】在Linux端安装rz/sz工具(嵌入式开发中多数已将编译好的rz/sz工具放到rootfs中了,普通的Linux系统如果没有,可以下载源码自己安装)。在命令行中直接运行rz/sz,实现和Windows之间的文件传输。rz 会弹出本地端(windows)目录窗口,选择文件上传到开发机;sz file1 file2 则是选择开发机上的文件拷贝到本地端(windows);其中windows的upload/download默认路径是当前使用工具设定的,比如我的secureCRT,在Session->Session Options->Terminal->Xmodem/Zmodem->Directories

【为什么要用rz/sz】
普通Linux和Windows之间的文件共享方法,主要是建立nfs文件共享,和tftp之类的方法,但是都很麻烦,如果只是小文件(几十K,几百K),用rz/sz方便快捷。(据说rz/sz传输速度只有10KB/s左右,我使用的时候显示貌似并不是这样)

【sz/rz传输中断问题】
传输文件稍微大一点(几百M,几G),经常有连接中断的问题。rz会有上传中断或文件发生变化,改用二进制传输 rz -be,再把弹出对话框的"Upload files as ASCII"勾选去掉
-a: ascii 用ASCII码方式上传下载
-b: binary 用binary的方式上传下载,不解释字符为ascii(上传rar,gif等文件一般使用b)
-e: escape 强制escape所有控制字符,比如ctrl+x,DEL等(因文件较大而上传出错时一般使用e)
rz上传较大文件时,有时传一半会断,使用 rz -be,可以解决。
sz不太一样,下载较大文件时,有时会传一半中止(还会断开开发机连接),使用 sz -be 有时可以解决问题;仍然不行时,就比较玄:尝试换个时间sz,或把文件打包压缩再sz,或scp把文件先传到别的机器再sz,或把文件传到什么比较方便的地方再下载......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: