)
Linux命令-rcp远程文件复制命令语法常用选项远程路径格式场景化实例1. 从远程主机复制文件到本地2. 从本地复制文件到远程主机3. 在远程主机之间复制文件4. 递归复制整个目录结构5. 实际生产环境应用不推荐6. 迁移到 scp 的对照示例7. 文件校验对比迁移指南rcp 到 scp/rsync安全最佳实践快速参考rcpRemote Copy用于在 Unix/Linux 主机之间通过 rsh 协议复制文件。该命令使用明文传输无加密机制已被scp和rsync完全取代仅建议在封闭隔离网络中临时使用。安全警告rcp 不加密传输数据包括密码极易被中间人攻击截获。强烈建议使用scp或rsync over SSH替代。命令语法rcp[选项]源文件 目标文件rcp[选项]源文件... 目标目录常用选项选项说明-r递归复制整个目录-p保留源文件的修改时间和权限-k要求 Kerberos 认证-x开启 DES 加密仍不安全远程路径格式# 基本格式rcpuserhost:远程路径 本地路径rcp本地路径 userhost:远程路径场景化实例1. 从远程主机复制文件到本地# 复制单个文件rcproot192.168.1.100:/etc/hosts /tmp/hosts_backup# 复制并保留时间属性rcp-puserserver:/var/log/syslog ./syslog_backup2. 从本地复制文件到远程主机# 上传文件到远程rcp./deploy.tar.gz admin10.0.0.5:/opt/deploy/# 递归上传目录rcp-r./website/ userweb-server:/var/www/3. 在远程主机之间复制文件# 从 host1 复制到 host2需要 host1 能访问 host2rcpuser1host1:/data/export.csv user2host2:/data/import.csv4. 递归复制整个目录结构# 复制整个项目目录rcp-rpdeveloperbuild-server:/home/project/output/ ./output/# 查看复制进度配合其他工具rcp-rsource/ dest/echo复制完成5. 实际生产环境应用不推荐# 在隔离网络中的批量部署脚本#!/bin/bashSERVERS192.168.100.10 192.168.100.11 192.168.100.12forhostin$SERVERS;doecho部署到$host...rcp-p/opt/app/app.war deployer$host:/opt/tomcat/webapps/doneecho批量部署完成6. 迁移到 scp 的对照示例# rcp 用法不安全rcp-ruserold-server:/data/ /backup/# scp 等价用法安全scp-ruserold-server:/data/ /backup/# rsync 更高效增量传输rsync-avzuserold-server:/data/ /backup/# 使用 SSH 密钥认证scp-i~/.ssh/deploy_key-ruserserver:/app/ ./app/7. 文件校验对比# rcp 复制后手动校验rcpuserremote:/large/file.dat ./file.dat md5sum ./file.datsshuserremotemd5sum /large/file.dat# 对比两个哈希值确保一致# 相比之下 rsync 自动校验rsync-avcuserremote:/large/file.dat ./file.dat迁移指南rcp 到 scp/rsync# 1. 基本文件复制# rcp: rcp file.txt userhost:/path/# scp: scp file.txt userhost:/path/# 2. 递归目录# rcp: rcp -r dir/ userhost:/path/# scp: scp -r dir/ userhost:/path/# 3. 保留属性# rcp: rcp -p file userhost:/path/# scp: scp -p file userhost:/path/# 4. 增量同步rsync 独有优势rsync-avz--progressdir/ userhost:/path/安全最佳实践核心原则永远不要在生产环境或任何网络中使用 rcp。即使是内网也应使用 SSH 协议传输。# 检查系统是否安装了 rcp通常已废弃whichrcp2/dev/null||echorcp 未安装这是好事# 如必须使用配置 .rhosts 限制访问# /etc/hosts.equiv 或 ~/.rhostsechotrusted-host.example.com trusted-user~/.rhostschmod600~/.rhosts# 迁移后禁用 rsh 服务sudosystemctl disable rsh.socket2/dev/nullsudosystemctl stop rsh.socket2/dev/null