Linux 命令速查
压缩备份 man rmt

rmt

远端磁带访问服务程序,供 tar 通过 rsh/ssh 调用。

返回

补充说明

rmt(remote magnetic tape)是 GNU tar 附带的辅助程序,运行在远端主机上,通过标准输入输出接收 tar 发来的打开、读写、定位、关闭等请求,从而操作远端的磁带机或归档文件。它本身不是给用户直接使用的命令。

工作方式:本地 tar 以 host:文件名 指定远端归档,并按 --rsh-command 启动远程 shell(历史上是 rsh,现在通常用 ssh),在远端执行 rmt,双方用一套简单协议通信。程序通常位于 /usr/sbin/rmt 或 /usr/libexec/rmt,路径因发行版而异。

由于 rsh 明文传输且 rmt 协议缺少认证,现代环境应改用 ssh 并限制可执行命令;更常见的做法是直接通过 ssh 管道传输,例如 ssh host 'cat > /backup/a.tar' < a.tar。在容器或最小化系统中,rmt 可能未被安装,即使远端有 tar 也不能直接使用远程归档语法。

语法

rmt [--help] [--version]

实例

# 确认远端是否安装了 rmt(路径因发行版而异)
ssh user@host 'command -v rmt || ls /usr/sbin/rmt /usr/libexec/rmt'

# 通过 ssh 使用远端磁带设备(远端需有 rmt 与设备权限)
tar --rsh-command=/usr/bin/ssh -cf user@host:/dev/st0 /data

# 列出远端归档内容
tar --rsh-command=/usr/bin/ssh -tf user@host:/backup/archive.tar

# 更简单可靠的替代:用 ssh 管道传输
tar -cf - /data | ssh user@host 'cat > /backup/data.tar'

# 恢复时同样走管道
ssh user@host 'cat /backup/data.tar' | tar -xf - -C /restore

参考链接