使用 rsync 同步跳板机代码到内网机器

通过rsync在有外网的跳板机上拉取代码,并使用rsync的shell模式同步到内网机器。介绍rsync的两种工作模式、常用选项,以及服务端和客户端的配置步骤,确保安全的文件同步。

多台阿里云的机器,只有一台跳板机有外网地址,因此在跳板机上pull代码, 然后用 rsync 同步到其他内网的机器。此处用跳板机做rsync客户端, 其他机器做rsync服务端, 从跳板机往内网机上推文件。

基本用法


从本地传输到远程 
rsync source host:destination 
rsync source host::destination

从远程传输到本地 
rsync host:source destination
rsync host::source destination

rsync有2种不同的工作模式:

  • shell模式:使用远程shell程序(如ssh或rsh)进行连接。当源路径或目的路径的主机名后面包含一个冒号分隔符时使用这种模式,rsync安装完成后就可以直接使用了,无所谓启动。
  • daemon模式:使用TCP直接连接rsync daemon。当源路径或目的路径的主机名后面包含两个冒号,或使用rsync://URL时使用这种模式,无需远程shell,但必须在一台机器上启动rsync daemon,默认端口873,这里可以通过rsync --daemon使用独立进程的方式,或者通过xinetd超级进程来管理rs
<think> 我们被要求使用rsync命令从远程机器拷贝文件到本地 参考引用[2]和引用[4]中提到了rsync的用法,尤其是拉取模式(从远程到本地) 基本命令格式:rsync [选项] 远程用户@远程主机:远程文件路径 本地目标路径 常用选项:-a(归档模式,保留文件属性),-v(详细输出),-z(压缩传输) 另外,引用[3]提到远程机器可能因Shell环境干扰导致失败,如果遇到问题可以检查远程机器shell配置(如.bashrc等)是否有额外输出 根据用户需求,我们将给出rsync命令的详细使用方法 </think> 使用 `rsync` 命令从远程机器拷贝文件到本地的操作指南如下,该方法在文件同步效率和可靠性方面优于 `scp`,特别适合大文件传输和增量更新场景: ### 基础命令格式 ```bash rsync [选项] 远程用户@远程主机:远程文件路径 本地目标路径 ``` ### 常用选项说明 | 选项 | 作用描述 | |------|----------| | `-a` | 归档模式(保留权限、时间戳等属性) | | `-v` | 显示详细传输过程 | | `-z` | 传输时压缩数据(节省带宽) | | `--progress` | 显示实时传输进度 | | `--exclude='*.log'` | 排除指定类型文件 | | `-e 'ssh -p 端口'` | 指定SSH端口(默认22) | ### 操作示例 1. **同步单个文件到本地**: ```bash rsync -avz user@192.168.1.100:/remote/path/file.txt /local/path/ ``` 2. **同步整个目录(保留属性)**: ```bash rsync -avz user@remote_host:/remote/folder/ /local/target/ ``` 3. **排除特定文件类型**(如排除临时文件): ```bash rsync -avz --exclude='*.tmp' user@remote_host:/data/ /backup/ ``` 4. **使用非标准SSH端口**: ```bash rsync -avz -e 'ssh -p 2222' user@remote_host:/files/ /local/ ``` ### 故障排查技巧 - **问题现象**:传输中断或失败 **解决方案**:添加 `--partial` 选项保留中断文件,配合 `--append` 实现断点续传 ```bash rsync -avz --partial --progress user@remote_host:/bigfile.iso . ``` - **问题现象**:远程Shell环境干扰(如登录提示信息)[^3] **解决方案**:在远程主机的 `~/.bashrc` 中添加: ```bash if [[ $- != *i* ]]; then # 非交互式会话跳过提示 return fi ``` ### 自动化免密传输 配合 `sshpass` 实现脚本自动化(注意安全风险): ```bash rsync -avz -e 'sshpass -p "密码" ssh' user@host:/source/ /dest/ # [^4] ``` > **安全建议**:生产环境推荐使用 SSH 密钥认证替代密码明文 `rsync` 通过差异校验实现高效传输,在首次完整同步后,后续传输仅发送变化部分(增量同步),带宽利用率显著优于 `scp`[^1][^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值