做一棵种子
一,什么是sb命令
sb 命令属于lrzsz包,用于 ZMODEM/YMODEM 协议的文件发送。
[root@localhost ~]# rpm -ql lrzsz/usr/bin/rb/usr/bin/rx/usr/bin/rz/usr/bin/sb/usr/bin/sx/usr/bin/sz/usr/share/locale/de/LC_MESSAGES/lrzsz.mo/usr/share/man/man1/rz.1.gz/usr/share/man/man1/sz.1.gz
核心作用:批量文件传输
在 linux中,sb 命令主要用于批量使用 YMODEM 或 ZMODEM 纠错协议,通过拨号串行端口将一个或多个文件发送到在 PC-DOS、CP/M、Unix、VMS 及其他操作系统下运行的各种程序(例如 Windows 环境下的 Xshell 终端工具)。
功能特点
与单文件传输命令(如 sx)相比,sb 具有以下优势:
- 批量传输:
- 保留文件属性: 在 Unix 系统上,它会传输关于文件的其他额外信息。如果接收程序支持,传输的文件长度可以精确控制写入输出数据集的字节数,并且能够相应地设置文件的修改时间和文件模式。
- 提升吞吐量:
sb 支持带有“cbreak”tty 的模式、XON/XOFF 流控制以及 YMODEM-G 协议。YMODEM-G 通过不对每个传输的扇区进行确认,在无错误的通道(如直接连接)上能够显著提高数据传输的吞吐量。
二,帮助参数
[root@localhost ~]# sb --helpsb 版本 0.12.20用法: sb [选项] 文件 ...或: sb [选项] -{c|i} 命令使用 ZMODEM/YMODEM/XMODEM 协议发送文件(X) = 该选项仅适用于 XMODEM(Y) = 该选项仅适用于 YMODEM(Z) = 该选项仅适用于 ZMODEM-+, --append 追加到已存在的目标文件 (Z)-2, --twostop 使用 2 个停止位-4, --try-4k 尝试使用高达 4K 的数据块大小--start-4k 以 4K 数据块大小开始(不尝试 8K)-8, --try-8k 尝试使用高达 8K 的数据块大小--start-8k 以 8K 数据块大小开始-a, --ascii ASCII 模式传输(将 CR/LF 转换为 LF)-b, --binary 二进制模式传输-B, --bufsize N 缓冲 N 字节(N==auto 表示缓冲整个文件)-c, --command COMMAND 执行远程命令 COMMAND (Z)-C, --command-tries N 尝试执行命令 N 次 (Z)-d, --dot-to-slash 将路径名中的 '.' 更改为 '/' (Y/Z)--delay-startup N 在执行任何操作前休眠 N 秒-e, --escape 转义所有控制字符 (Z)-E, --rename 强制接收端重命名已存在的文件-f, --full-path 发送完整路径名 (Y/Z)-h, --help 打印此帮助信息-k, --1k 发送 1024 字节的数据包 (X)-L, --packetlen N 将子数据包长度限制为 N 字节 (Z)-l, --framelen N 将帧长度限制为 N 字节(l>=L) (Z)-m, --min-bps N 如果波特率低于 N,则停止传输-M, --min-bps-time N 至少持续 N 秒(默认 120 秒)-n, --newer 仅在源文件较新时发送 (Z)-N, --newer-or-longer 仅在源文件较新或较长时发送 (Z)-o, --16-bit-crc 使用 16 位 CRC 代替 32 位 CRC (Z)-O, --disable-timeouts 禁用超时机制,无限期等待-p, --protect 保护已存在的目标文件不被覆盖 (Z)-r, --resume 恢复中断的文件传输 (Z)-R, --restricted 受限模式,安全性更高-q, --quiet 静默模式(不显示传输进度报告)-s, --stop-at {HH:MM|+N} 在 HH:MM 时刻或 N 秒后停止传输--tcp 建立 TCP 连接以传输文件--tcp-server 打开套接字,等待连接-u, --unlink 传输完成后删除文件-U, --unrestrict 关闭受限模式(如果允许)-v, --verbose 详细模式,提供调试信息-w, --windowsize N 设置窗口大小为 N 字节 (Z)-X, --xmodem 使用 XMODEM 协议-y, --overwrite 覆盖已存在的文件-Y, --overwrite-or-skip 覆盖已存在的文件,否则跳过--ymodem 使用 YMODEM 协议-Z, --zmodem 使用 ZMODEM 协议短选项使用与长选项相同的参数。
三,例子
1. 基础用法:批量发送文件到本地,执行此命令后,Xshell 会自动弹出保存对话框,让您选择本地保存路径。
[root@localhost ~]# sb /var/log/messages /var/log/maillog /var/log/secure
2. 指定协议发送,默认情况下,sb 可能会自动协商协议。如果您想明确指定使用传输效率更高的 ZMODEM 协议:
[root@localhost ~]# sb --zmodem /var/log/messages
或者使用 YMODEM 协议
[root@localhost ~]# sb --ymodem /var/log/messages
3. 覆盖本地已存在的文件,如果本地目标路径下已经有同名文件,默认可能会跳过或提示。您可以使用 -y 参数强制覆盖:
[root@localhost ~]# sb -y /var/log/messages
4. 发送完整路径名,默认情况下,接收端可能只保留文件名。如果您希望接收端在本地也创建相同的目录结构,可以使用 -f 参数:但是实际测试不行
[root@localhost ~]# sb -f /var/log/messagesNo permission to write on the specified folder. E:\testTransmission canceled.
5. 断点续传,如果之前传输大文件时网络中断,可以使用 -r 参数尝试从断开的地方继续传输:
sb -r /root/mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
实际会接着开始传
6.静默模式传输,如果您在编写自动化脚本,不需要看到传输进度的提示,可以使用 -q 参数:实际也有弹窗
四,补充
温馨提示:
- 接收端配合:
sb 只是服务器端的发送动作,要成功下载,您的本地终端工具(如 Xshell)必须开启对 ZMODEM/YMODEM 协议的自动下载支持(Xshell 默认支持)。 - 替代命令: 在日常运维中,如果您只需要发送单个文件,使用
sz 命令(如 sz filename)更为常见;sb 更适合批量发送多个文件的场景。
如果想从本地往服务器传,也就是sb 命令的逆向操作(即从本地电脑上传文件到 CentOS 7 服务器)需要使用 lrzsz 软件包中的 rz 命令。
五,总结
Linux sb 命令及 lrzsz 工具总结│├── 1. 基本概念│ ├── 所属软件包:lrzsz│ ├── 核心作用:使用 ZMODEM/YMODEM/XMODEM 协议进行文件传输│ └── 适用场景:配合终端工具(如 Xshell)在本地与服务器间互传文件│├── 2. 核心命令:sb (Send Batch)│ ├── 主要功能:批量发送服务器上的多个文件到本地│ ├── 基础语法:sb [选项] 文件1 文件2 ...│ ├── 常用参数│ │ ├── -Z / --zmodem:指定使用 ZMODEM 协议(推荐,效率高)│ │ ├── -y / --overwrite:强制覆盖本地已存在的同名文件│ │ ├── -f / --full-path:保留并发送文件的完整目录路径│ │ ├── -r / --resume:支持断点续传(大文件必备)│ │ └── -q / --quiet:静默模式,不显示传输进度(适合脚本)│ └── 替代命令:sz(仅用于发送单个文件)
以上就是今天全部内容。
最后的最后(Last but not least),欢迎交流:
关注公众号留言,或者在下方直接留言: