暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux方便快捷上传下载小文件技巧

运维笔谈 2025-05-14
291

 

就是使用rz、sz

上次我看到我们开发上传服务器文件还在Mac电脑上使用sftp在操作,我问他为啥不考虑下rz和sz呢?Linux中的rz和sz是基于ZModem协议实现的命令行文件传输工具,主要用于本地主机与远程Linux/Unix服务器之间的文件上传和下载操作,无需额外配置FTP服务即可完成传输。

一、功能与用途

  • • rz(Receive ZMODEM)
    执行该命令会弹出本地文件选择窗口,允许从本地计算机上传文件到Linux服务器。例如:输入rz后,终端会触发文件选择对话框,用户可直接选择需上传的文件。
  • • sz(Send ZMODEM)
    用于将指定文件从Linux服务器发送(下载)到本地主机。例如:执行sz filename会将该文件通过ZModem协议传输至本地。

在 CentOS 和 Ubuntu 中安装 lrzsz
用于通过 rz
 和 sz
 命令实现文件传输。


二、安装rz和sz

在 类RHEL系统中,使用 yum
 包管理器安装:

sudo yum install lrzsz
  • 对于 CentOS 8+ 或使用 dnf
     的情况
    sudo dnf install lrzsz

在 Ubuntu/Debian 中,使用 apt
 包管理器安装:

sudo apt update        # 更新软件包列表(可选但建议)
sudo apt install lrzsz


安装完成后,可以通过以下命令检查是否成功:

which rz sz

正常输出路径(如 /usr/bin/rz
 和 /usr/bin/sz
)即表示安装成功。


基本用法

  • • 上传文件到服务器(本地 → 远程):
    rz
  • • 下载文件到本地(远程 → 本地):
    sz 文件名

在使用 rz
 和 sz
 命令进行文件传输时,需注意以下事项,并确保客户端支持 ZModem 协议:


三、使用 rz
 和 sz
 的注意事项

  1. 1. 仅支持单个文件传输
    • • rz
       和 sz
       不能直接传输整个目录,如需传输文件夹,需要先打包(如 .tar.gz
       或 .zip
      )再传输。
    • • 例如:tar -czvf dir.tar.gz folder/
       打包后上传。
  2. 2. 依赖终端工具支持 ZModem 协议
    • • rz
       和 sz
       需要 终端客户端支持 ZModem,否则无法触发文件传输窗口。
  1. 3. 传输中断的处理
    • • ZModem 协议支持 断点续传,但需确保传输中断时文件未被损坏。
    • • 若传输失败,建议删除部分下载的文件后重新尝试。
  2. 4. 文件名编码问题
    • • 若服务器与本地终端的字符编码不一致(如服务器为 UTF-8,本地为 GBK),可能导致中文文件名乱码。
    • • 解决方法:统一两端的编码格式(推荐 UTF-8)。
  3. 5. 传输速度限制
    • • rz
      /sz
       的传输效率通常低于 scp
       或 rsync
      ,适合小文件传输。
    • • 大文件建议使用 scp
      sftp
       或 lrzsz
       的替代工具(如 tmux
       配合 scp
      )。
  4. 6. 权限问题
    • • 上传文件时,需确保目标目录有写权限;下载文件时,需确保远程文件可读。
    • • 例如:rz
       上传时若提示权限不足,需使用 sudo
       提权执行命令。
  5. 7. 避免在脚本中直接使用
    • • rz
       和 sz
       会触发交互式文件选择窗口,不适合自动化脚本。
    • • 脚本中建议使用非交互式工具(如 scp
       或 curl
      )。

支持 ZModem 的终端客户端

以下常见终端工具支持 rz
/sz
 的 ZModem 协议传输:

客户端名称平台说明
SecureCRT
Windows/macOS
默认支持 ZModem,上传(rz
)和下载(sz
)自动触发文件选择窗口。
Xshell
Windows
需在会话属性中启用 ZModem 支持(工具 > Xshell > 文件传输)。
iTerm2
(macOS)
macOS
支持 ZModem,但需安装 lrzsz
 并配置触发脚本(如 rx
/sx
)。
ZOC Terminal
Windows/macOS
内置 ZModem 支持,可直接使用 rz
/sz
Tera Term
Windows
需安装额外插件(如 TTZModem
)才能支持。
Minicom
Linux
嵌入式环境常用,支持 ZModem,需配置串口连接参数。
MobaXterm
Windows
内置 rz
/sz
 支持,无需额外配置。

典型问题排查

  1. 1. 执行 rz
     无弹窗
    • • 检查客户端是否支持 ZModem,并确保 SSH 连接未禁用 X11 转发(部分工具依赖此功能)。
    • • 在 SecureCRT 中,检查 Options > Session Options > Terminal > Xmodem/Zmodem
       是否启用。
  2. 2. 传输过程中断
    • • 网络不稳定可能导致中断,ZModem 会尝试续传,但建议重新开始以确保完整性。
  3. 3. 文件名乱码
    • • 在终端中设置字符编码为 UTF-8(如 SecureCRT:Options > Session Options > Terminal > Character Encoding
      )。

若 rz
/sz
 不满足需求,可考虑以下工具:

  • • 大文件传输:使用 scp
     或 rsync
    (如 scp file user@host:/path
    )。
  • • 图形化工具:FileZilla(支持 SFTP)、WinSCP。
  • • 终端内直接编辑:通过 vim
     的 :put
     命令粘贴文件内容,或使用 cat
     输出文本。

 

文章转载自运维笔谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论