一,什么是rz
rz(receive Zmodem)是 Linux/Unix 系统下用于从本地计算机上传文件到远程 Linux 服务器的命令行工具,属于 lrzsz 软件包的一部分,基于 Zmodem 协议进行数据传输。
在远程服务器的终端中输入 rz 并回车后,支持 Zmodem 协议的 SSH 客户端(如 SecureCRT、Xshell 等)会自动弹出文件选择对话框,选择文件后即可上传到服务器当前所在目录。
二,参数
rz version 0.12.20用法:rz [选项] [filename.if.xmodem]使用 ZMODEM/YMODEM/XMODEM 协议接收文件 (X) = 该选项仅适用于 XMODEM (Y) = 该选项仅适用于 YMODEM (Z) = 该选项仅适用于 ZMODEM -+, --append 追加到已存在的文件 -a, --ascii ASCII 传输(将 CR/LF 转换为 LF) -b, --binary 二进制传输 -B, --bufsize N 缓冲区大小为 N 字节(N==auto:缓冲整个文件) -c, --with-crc 使用 16 位 CRC 校验 (X) -C, --allow-remote-commands 允许执行远程命令 (Z) -D, --null 将所有接收到的数据写入 /dev/null --delay-startup N 在开始操作前休眠 N 秒 -e, --escape 转义控制字符 (Z) -E, --rename 对已存在的文件进行重命名 --errors N 每 N 字节生成一次 CRC 错误(用于调试) -h, --help 显示帮助信息,打印此用法说明 -m, --min-bps N 当传输速率低于 N 时停止传输 -M, --min-bps-time N 持续时间至少为 N 秒(默认值:120) -O, --disable-timeouts 禁用超时机制,无限等待数据 --o-sync 以同步写入模式打开输出文件 -p, --protect 保护已存在的文件(不覆盖) -q, --quiet 静默模式,不显示传输进度 -r, --resume 尝试恢复中断的文件传输 (Z) -R, --restricted 受限模式,安全性更高 -s, --stop-at {HH:MM|+N} 在指定时间 HH:MM 或 N 秒后停止传输 -S, --timesync 请求远程时间(使用两次则设置本地时间) --syslog[=off] 开启或关闭 syslog 日志(如果支持) -t, --timeout N 将超时时间设置为 N 个十分之一秒 -u, --keep-uppercase 保留文件名中的大写字母 -U, --unrestrict 禁用受限模式(如果允许) -v, --verbose 详细模式,输出调试信息 -w, --windowsize N 窗口大小为 N 字节 (Z) -X --xmodem 使用 XMODEM 协议 -y, --overwrite 确认覆盖,若文件已存在则直接覆盖 --ymodem 使用 YMODEM 协议 -Z, --zmodem 使用 ZMODEM 协议短选项使用与长选项相同的参数
三,例子
1. 二进制传输
[root@node2 rz]# mkdir -p /opt/rz/rz-test && cd /opt/rz/rz-test[root@node2 rz-test]#[root@node2 rz-test]# rz -b[root@node2 rz-test]# ls测试rx.txt[root@node2 rz-test]# md5sum 测试rx.txt 3c833a07a1f3a034ee39049055ba897e 测试rx.txt
2. 追加到已存在文件(-+),确认行数增加
[root@node2 rz-test]# cat 测试rx.txt 测试rx.txt测试rx.txt[root@node2 rz-test]# rz -b -+[root@node2 rz-test]# cat 测试rx.txt 测试rx.txt测试rx.txt测试rx.txt[root@node2 rz-test]#
3、自动重命名已存在文件(-E)
[root@node2 rz-test]# rz -b -E[root@node2 rz-test]# ls -ltotal 12-rw-r--r-- 1 root root 54 Aug 15 21:51 测试rx.txt-rw-r--r-- 1 root root 18 Aug 15 21:51 测试rx.txt.0-rw-r--r-- 1 root root 18 Aug 15 21:51 测试rx.txt.1
4、强制覆盖已存在文件(-y)
[root@node2 rz-test]# cat 测试rx.txt测试rx.txt测试rx.txt测试rx.txt[root@node2 rz-test]# rz -b -y[root@node2 rz-test]# cat 测试rx.txt测试rx.txt[root@node2 rz-test]#
5、静默模式(-q),# 传输过程中无进度输出,但文件应正常存在
[root@node2 rz-test]# rz -bq[root@node2 rz-test]# lltotal 4-rw-r--r-- 1 root root 18 Aug 15 21:51 AAAArx.txt
6、详细调试模式(-v),# 观察终端输出,应显示 Zmodem 握手、数据包收发等详细调试信息
[root@node2 rz-test]# rz -bvReceiving: AAAArx.txt Transfer complete[root@node2 rz-test]# rz -bvfile exists, skipped: AAAArx.txt SkippedTransfer complete[root@node2 rz-test]#
7、丢弃接收数据(-D,用于测试/调试),# 确认当前目录没有生成任何新文件(数据写入 /dev/null)
[root@node2 rz-test]# rz -bD[root@node2 rz-test]# lltotal 0
6、设置超时时间(-t)
[root@node2 rz-test]# rz -b -t 300[root@node2 rz-test]# rz -b -t 1rz: timeout out of range 10..1000Try `rz --help' for more information.[root@node2 rz-test]# rz -b -t 10[root@node2 rz-test]#
7、最低传输速率保护(-m + -M),# 若网络极慢,传输会自动中断并退出
[root@node2 rz-test]# rz -b -m 1024 -M 60
8、定时停止传输(-s)# 60 秒后传输中断,查看已接收到的部分文件
[root@node2 rz-test]# rz -b -s +60
9、自定义缓冲区大小(-B)
[root@node2 rz-test]# rz -b -B 65536
10、缓冲整个文件(-B auto)
[root@node2 rz-test]# rz -b -B auto
11、自定义窗口大小(-w,仅 Zmodem)
[root@node2 rz-test]# rz -bZ -w 4096
12. 受限安全模式(-R)
[root@node2 rz-test]# rz -bR# 验证操作# 该模式下会限制危险操作(如远程命令执行),确认传输正常完成
13. 同步写入模式(--o-sync)
# 执行命令[root@node2 rz-test]# rz -b --o-sync# 验证操作[root@node2 rz-test]# ls -l # 文件写入磁盘后才返回,确认文件完整(适合对数据安全性要求高的场景)
14. 指定 Zmodem 协议(-Z,默认)
# 执行命令[root@node2 rz-test]# rz -bZ# 验证操作[root@node2 rz-test]# ls -l && md5sum AAAArx.txt
15. 指定 Ymodem 协议(--ymodem)
# 执行命令[root@node2 rz-test]# rz -b --ymodem# 验证操作[root@node2 rz-test]# ls -l # 注意:Ymodem 传输时文件名处理可能与 Zmodem 不同
16. 指定 Xmodem 协议(-X)
# 执行命令[root@node2 rz-test]# rz -bX# 验证操作[root@node2 rz-test]# ls -l # 注意:Xmodem 不支持文件名传输,可能需要手动指定文件名
17. 延迟启动(--delay-startup)
# 执行命令(启动前等待 5 秒)[root@node2 rz-test]# rz -b --delay-startup 5# 验证操作# 观察输入 rz 命令后约 5 秒才弹出文件选择对话框
18. 断点续传(-r,仅 Zmodem)
# 先上传一个大文件,中途 Ctrl+C 中断,留下不完整文件# 执行命令[root@node2 rz-test]# rz -br[root@node2 rz-test]# md5sum AAAArx.txt 3c833a07a1f3a034ee39049055ba897e AAAArx.txt # 确认文件从断点处继续传输并最终完整
19. CRC 错误调试(--errors,仅用于开发调试)
# 执行命令(每 1024 字节注入一次 CRC 错误)[root@node2 rz-test]# rz -b --errors 1024# 验证操作# 传输大概率失败或触发重传,用于验证错误处理逻辑
20. 请求远程时间同步(-S)
# 执行命令[root@node2 rz-test]# rz -bS# 验证操作[root@node2 rz-test]# date # 观察是否获取到远程时间信息
21. 生产环境推荐组合
# 执行命令(二进制 + 转义 + 详细输出 + 覆盖已有文件)[root@node2 rz-test]# rz -bevy# 验证操作[root@node2 rz-test]# ls -l # 确认文件存在[root@node2 rz-test]# md5sum AAAArx.txt # 与本地源文件对比 MD5[root@node2 rz-test]# file AAAArx.txt # 确认文件类型正确[root@node2 rz-test]# stat AAAArx.txt # 查看文件权限、时间戳等元信息
四,补充
注意点:所有示例中的 rz 命令运行在远程服务器端,实际的文件选择弹窗由本地 SSH 客户端(如 Xshell、SecureCRT)处理。普通终端(如 GNOME Terminal)不支持 Zmodem 协议,无法触发文件选择对话框。
| |
|---|
| -b-a |
| -+-p-E-y |
| -u |
| -q-v-D |
| -t-O-m-M-s-r |
| -B-w |
| -R-e-C-U |
| -Z--ymodem-X |
| --delay-startup--o-sync--errors-S |
五,总结
以上就是rz命令全部内容。
最后的最后(Last but not least),欢迎交流:
关注公众号留言,或者在下方直接留言: