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

相关推荐
智行众维12 分钟前
数据驱动与AI融合——构建自动驾驶仿真测试新范式的实践
人工智能·测试工具·ai·自动驾驶·仿真测试·自动驾驶仿真测试·场景开发
cuijiecheng201822 分钟前
Linux下libsocket库的使用
linux·运维·服务器
BIBI204929 分钟前
通过 HeidiSQL 连接 CentOS 7 中的 MySQL 5.7
linux·windows·mysql·centos·数据库管理·环境搭建·服务器运维
小码吃趴菜29 分钟前
网络编程-基础网络概念
linux·网络
程序员杰哥38 分钟前
操作自动化测试如何实现用例设计实例?
自动化测试·软件测试·python·功能测试·测试工具·测试用例·接口测试
wdfk_prog42 分钟前
[Linux]学习笔记系列 -- [fs]ramfs
linux·笔记·学习
一尘之中43 分钟前
在 Ubuntu 上安装 Docker 的完整指南(使用国内镜像源)
linux·docker·ai写作
RisunJan44 分钟前
Linux命令-ip命令(网络配置工具)
linux·网络·tcp/ip
oMcLin1 小时前
如何在Ubuntu 20.04上配置并优化XFS文件系统,提升大规模数据处理与存储的性能?
linux·运维·ubuntu
杰克崔1 小时前
内核调度子系统专栏导航——包括免费专栏里调度子系统部分(持续更新)
linux·运维·服务器·车载系统