Linux命令-rcp(远程文件复制)
2026/7/3 8:27:16 网站建设 项目流程

Linux命令-rcp(远程文件复制)

    • 命令语法
    • 常用选项
    • 远程路径格式
    • 场景化实例
      • 1. 从远程主机复制文件到本地
      • 2. 从本地复制文件到远程主机
      • 3. 在远程主机之间复制文件
      • 4. 递归复制整个目录结构
      • 5. 实际生产环境应用(不推荐)
      • 6. 迁移到 scp 的对照示例
      • 7. 文件校验对比
    • 迁移指南:rcp 到 scp/rsync
    • 安全最佳实践

快速参考rcp(Remote Copy)用于在 Unix/Linux 主机之间通过 rsh 协议复制文件。该命令使用明文传输,无加密机制,已被scprsync完全取代,仅建议在封闭隔离网络中临时使用。

安全警告:rcp 不加密传输数据(包括密码),极易被中间人攻击截获。强烈建议使用scprsync over SSH替代。

命令语法

rcp[选项]源文件 目标文件rcp[选项]源文件... 目标目录

常用选项

选项说明
-r递归复制整个目录
-p保留源文件的修改时间和权限
-k要求 Kerberos 认证
-x开启 DES 加密(仍不安全)

远程路径格式

# 基本格式rcpuser@host:远程路径 本地路径rcp本地路径 user@host:远程路径

场景化实例

1. 从远程主机复制文件到本地

# 复制单个文件rcproot@192.168.1.100:/etc/hosts /tmp/hosts_backup# 复制并保留时间属性rcp-puser@server:/var/log/syslog ./syslog_backup

2. 从本地复制文件到远程主机

# 上传文件到远程rcp./deploy.tar.gz admin@10.0.0.5:/opt/deploy/# 递归上传目录rcp-r./website/ user@web-server:/var/www/

3. 在远程主机之间复制文件

# 从 host1 复制到 host2(需要 host1 能访问 host2)rcpuser1@host1:/data/export.csv user2@host2:/data/import.csv

4. 递归复制整个目录结构

# 复制整个项目目录rcp-rpdeveloper@build-server:/home/project/output/ ./output/# 查看复制进度(配合其他工具)rcp-rsource/ dest/&&echo"复制完成"

5. 实际生产环境应用(不推荐)

# 在隔离网络中的批量部署脚本#!/bin/bashSERVERS="192.168.100.10 192.168.100.11 192.168.100.12"forhostin$SERVERS;doecho"部署到$host..."rcp-p/opt/app/app.war deployer@$host:/opt/tomcat/webapps/doneecho"批量部署完成"

6. 迁移到 scp 的对照示例

# rcp 用法(不安全)rcp-ruser@old-server:/data/ /backup/# scp 等价用法(安全)scp-ruser@old-server:/data/ /backup/# rsync 更高效(增量传输)rsync-avzuser@old-server:/data/ /backup/# 使用 SSH 密钥认证scp-i~/.ssh/deploy_key-ruser@server:/app/ ./app/

7. 文件校验对比

# rcp 复制后手动校验rcpuser@remote:/large/file.dat ./file.dat md5sum ./file.datsshuser@remote"md5sum /large/file.dat"# 对比两个哈希值确保一致# 相比之下 rsync 自动校验rsync-avcuser@remote:/large/file.dat ./file.dat

迁移指南:rcp 到 scp/rsync

# 1. 基本文件复制# rcp: rcp file.txt user@host:/path/# scp: scp file.txt user@host:/path/# 2. 递归目录# rcp: rcp -r dir/ user@host:/path/# scp: scp -r dir/ user@host:/path/# 3. 保留属性# rcp: rcp -p file user@host:/path/# scp: scp -p file user@host:/path/# 4. 增量同步(rsync 独有优势)rsync-avz--progressdir/ user@host:/path/

安全最佳实践

核心原则:永远不要在生产环境或任何网络中使用 rcp。即使是内网,也应使用 SSH 协议传输。

# 检查系统是否安装了 rcp(通常已废弃)whichrcp2>/dev/null||echo"rcp 未安装,这是好事"# 如必须使用,配置 .rhosts 限制访问# /etc/hosts.equiv 或 ~/.rhostsecho"trusted-host.example.com trusted-user">>~/.rhostschmod600~/.rhosts# 迁移后禁用 rsh 服务sudosystemctl disable rsh.socket2>/dev/nullsudosystemctl stop rsh.socket2>/dev/null

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询