目录
前言
lrzsz是一款基于ZMODEM协议的文件传输工具集,包含rz(接收)和sz(发送)两个核心命令,可作为FTP替代方案实现本地与远程服务器间的文件交互 。该工具通过ZMODEM协议支持断点续传、CRC-32错误校验,适用于脚本、日志等小文件传输场景。

lrzsz工具有如下特点:
- lrzsz是Linux系统中常用的一个文件传输工具集合,一般用于传输小文件,可以在终端中使用命令行操作。
- lrzsz由`lrz`和`lsz`两个命令组成,主要作用是通过终端在本地系统和远程系统之间进行文件传输,特别适用于与远程服务器进行文件交互。
- lrzsz的主要作用是通过终端(串行线或Telent或SSH会话)在本地系统和远程系统之间进行文件传输。
- lrz(rz)的功能:用于从本地系统上传文件到远程系统(比如从PC端到主控板)。
- lsz(sz)的功能:用于从远程系统下载文件到本地系统(比如从主控板到PC端)。
- rz(receive Zmodem的缩写)和sz(send Zmodem的缩写)是Linux同Windows进行Zmodem协议文件传输的命令工具。
lrzsz的启用方法参考
- 在SDK根目录下执行,source build/envsetup.sh和lunch选择所需方案(这是必要的,不然编译buildroot时可能会编译不通过),例如:
bash
$ source ./build/envsetup.sh
including device/n7v13/boards/xxx/vendorsetup.sh
$ lunch
- 切换到buildroot目录下,例如:
bash
cd buildroot-2019.11
- 查看buildroot现有的板级配置(板级配置文件在buildroot-2019.11/configs目录下),例如:
bash
buildroot-2019.11$ make list-defconfigs | grep "xxx"
xxx_1_defconfig - Build for xxx_1
xxx_2_defconfig - Build for xxx_2
xxx_3_defconfig - Build for xxx_3
xxx_4_defconfig - Build for xxx_4
- 根据需求选择板级配置,例如:
bash
buildroot-2019.11$ make xxx_2_defconfig
- 根据需求进入menuconfig逐项配置buildroot,如下:
bash
buildroot-2019.11$ make menuconfig
BR2_PACKAGE_LRZSZ=y
- 将menuconfig的配置修改保存到配置文件,如下:
bash
buildroot-2019.11$ make savedefconfig
- 查看当前buildroot所有配置了的目标软件包,也就是packages,如下:
bash
$ make show-targets
alsa-lib alsa-utils bash busybox can-utils dnsmasq dosfstools e2fsprogs ethtool fb-test-app gmp host-acl host-attr
host-autoconf host-automake host-fakeroot host-libtool host-m4 host-makedevs host-patchelf host-skeleton initscripts
iperf iperf3 iproute2 libopenssl libpng libsocketcan libzlib lrzsz ncurses nettle openssl readline skeleton
skeleton-init-common skeleton-init-sysv spidev_test sysstat toolchain toolchain-external
toolchain-external-custom util-linux zlib rootfs-tar
- 编译buildroot,如下:
bash
buildroot-2019.11$ make
- 查看编译后生成的rootfs的情况,如下:
bash
buildroot-2019.11$ cd output/images && ls -l
-
根据需求修改生成的rootfs的命名,修改rootfs打包路径。
-
由于此时rootfs有变动,所以需要清除当前SDK环境并重新编译SDK,如下:
bash
make clean && make -j8 kernel && make -j8 root && make pkg
lrzsz的验证测试参考
下面以使用MobaXterm调试工具为例。
- 从PC端上传文件到主控板。
例如,进入主控板的所需文件夹,命令行输入`lrz`或`rz`,然后在MobaXterm调试工具终端界面右键选择`send file using Z-modem`。
bash
# cd /mnt/card
# rz
Sending: timer.pngve.**B0100000023be50
*B0900000000a87c
Uploading: 99% (ETA 00:00 82 kB / 82 kB 128 kBPS) **B010000006Bytes Sent: 84067 BPS:8656
*B0800000000022d
Transfer complete
# ls -l
total 4416
-rwxrwxrwx 1 root root 7178 Nov 28 2023 09-??????.md
-rwxrwxrwx 1 root root 125787 Nov 17 2023 APP.PNG
drwxrwxrwx 2 root root 65536 Apr 2 2024 System Volume Information
-rwxrwxrwx 1 root root 3149 Mar 20 2024 readme.txt
-rwxrwxrwx 1 root root 3840044 Jun 14 2023 test.wav
-rwxrwxrwx 1 root root 84067 Mar 5 2024 timer.png
-rwxrwxrwx 1 root root 34002 Dec 1 2023 usb0.png
drwxrwxrwx 3 root root 65536 Jun 14 04:10 video_front
drwxrwxrwx 2 root root 65536 Jun 14 2023 video_front_lock
- 从主控板下载文件到PC端。
例如,进入主控板的所需文件夹,命令行输入`lrz`或`rz`,然后在MobaXterm调试工具终端界面右键选择`Receive file using Z-modem`。
bash
# sz APP.PNG
lrz waiting to receive.*CD@@@@Q3APP.PNG@125787 14525652070 100777 0 1 125787@kG
Receiving: APP.PNG
*CJ@@@@PNGMJZJ@@@MIHDR@@G @@BHB@@@/Ya@@@AsRGB@\@@@DgAMA@@KaE@@@IpHYs@@N@@NAod@@
...
?B@@@@@???b?J???E@@@@@?]h?9?j@@@@@@~PZDownloading: 100% kBytes received: 122/ 122 kBPS:8
...
?OO# 00000000022d
Transfer complete
总结
lrzsz工具集基于ZMODEM协议,提供rz(接收)和sz(发送)命令,支持断点续传和错误校验,适用于多种文件传输场景。
- 服务器管理与运维:在无图形界面或受限网络环境中,系统管理员可直接通过终端上传配置文件、下载日志或传输脚本,替代FTP或SCP,提升操作效率。
- 嵌入式系统开发:通过串口(如UART)与ARM开发板等设备通信时,lrzsz可用于传输固件、配置文件或调试数据,尤其在Bootloader阶段或无网络环境下作为"最后一公里"解决方案。
- 软件开发与测试:开发者可快速上传代码包、资源文件或下载编译产物,支持大数据平台(如Hadoop、Spark)的部署与配置同步,简化跨环境文件交换流程。
- 远程协助与轻量级传输:技术支持人员可通过终端调试软件(如Xshell、SecureCRT和MobaXterm等)直接拖拽文件,实现与用户的实时文件共享,适用于故障排查或临时数据交换。