Linux lrzsz文件传输工具的使用

目录

目录

前言

lrzsz的启用方法参考

lrzsz的验证测试参考

总结


前言

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

lrzsz工具有如下特点:

  1. lrzsz是Linux系统中常用的一个文件传输工具集合,一般用于传输小文件,可以在终端中使用命令行操作。
  2. lrzsz由`lrz`和`lsz`两个命令组成,主要作用是通过终端在本地系统和远程系统之间进行文件传输,特别适用于与远程服务器进行文件交互。
  3. lrzsz的主要作用是通过终端(串行线或Telent或SSH会话)在本地系统和远程系统之间进行文件传输。
  4. lrz(rz)的功能:用于从本地系统上传文件到远程系统(比如从PC端到主控板)。
  5. lsz(sz)的功能:用于从远程系统下载文件到本地系统(比如从主控板到PC端)。
  6. rz(receive Zmodem的缩写)和sz(send Zmodem的缩写)是Linux同Windows进行Zmodem协议文件传输的命令工具。

lrzsz的启用方法参考

  1. 在SDK根目录下执行,source build/envsetup.sh和lunch选择所需方案(这是必要的,不然编译buildroot时可能会编译不通过),例如:
bash 复制代码
$ source ./build/envsetup.sh
   including device/n7v13/boards/xxx/vendorsetup.sh

$ lunch
  1. 切换到buildroot目录下,例如:
bash 复制代码
cd buildroot-2019.11
  1. 查看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
  1. 根据需求选择板级配置,例如:
bash 复制代码
buildroot-2019.11$ make xxx_2_defconfig
  1. 根据需求进入menuconfig逐项配置buildroot,如下:
bash 复制代码
buildroot-2019.11$ make menuconfig

BR2_PACKAGE_LRZSZ=y
  1. 将menuconfig的配置修改保存到配置文件,如下:
bash 复制代码
buildroot-2019.11$ make savedefconfig
  1. 查看当前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
  1. 编译buildroot,如下:
bash 复制代码
buildroot-2019.11$ make
  1. 查看编译后生成的rootfs的情况,如下:
bash 复制代码
buildroot-2019.11$ cd output/images && ls -l
  1. 根据需求修改生成的rootfs的命名,修改rootfs打包路径。

  2. 由于此时rootfs有变动,所以需要清除当前SDK环境并重新编译SDK,如下:

bash 复制代码
make clean && make -j8 kernel && make -j8 root && make pkg

lrzsz的验证测试参考

下面以使用MobaXterm调试工具为例。

  1. 从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
  1. 从主控板下载文件到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等)直接拖拽文件,实现与用户的实时文件共享,适用于故障排查或临时数据交换。‌

相关推荐
Eiceblue19 分钟前
.NET框架下Windows、Linux、Mac环境C#打印PDF全指南
linux·windows·.net
试试勇气25 分钟前
Linux学习笔记(十三)--文件系统
linux·笔记·学习
yingdonglan1 小时前
鸿蒙跨端Flutter学习——GridView高级功能
linux·运维·windows
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [drivers][clk]clk
linux·笔记·学习
遇见火星1 小时前
在Linux中使用journalctl命令进行日志分析和管理详细教程
linux·运维·服务器·journalctl
xuefuhe1 小时前
RHEL9 yum install etcd Error: Unable to find a match: etcd
linux·运维·centos
m0_736034852 小时前
1.27笔记
linux·服务器·笔记
旖旎夜光2 小时前
Linux(12)(下)
linux·网络
郝亚军2 小时前
如何在windows11和Ubuntu linux之间互传文件
linux·运维·ubuntu
ghostmen2 小时前
Kuboard 离线安装与 K3s 集群绑定完整指南
linux·kuboard·k3s