在CentOS 7系统中,rsync结合SSH可以实现高效、安全的文件同步与备份,这种组合利用了SSH的加密传输特性和rsync的增量同步优势,适用于服务器数据迁移、定期备份等场景,以下从环境准备、配置步骤、优化建议及常见问题等方面展开说明。

环境准备与基础安装
首先确保CentOS 7系统已更新至最新状态,执行sudo yum update -y安装所有安全补丁,接着安装rsync工具,默认情况下CentOS 7已包含该工具,可通过rsync --version验证版本,若需重新安装,执行sudo yum install rsync -y,SSH服务通常已预装,可通过systemctl status sshd检查运行状态,若未启动则使用sudo systemctl start sshd并设置为开机自启sudo systemctl enable sshd。
SSH免密登录配置
为避免每次同步输入密码,需配置SSH免密登录,在源服务器生成SSH密钥对:ssh-keygen -t rsa -b 4096,连续按回车使用默认路径,将公钥复制至目标服务器的~/.ssh/authorized_keys文件:ssh-copy-id -i ~/.ssh/id_rsa.pub user@target_ip,若目标服务器非默认端口,需添加-p参数指定端口,测试免密登录是否成功,执行ssh user@target_ip应无需密码即可登录。
rsync基础同步命令
rsync命令的基本格式为rsync [选项] 源路径 目标路径,结合SSH时,目标路径需指定为user@host:remote_path,将本地/data目录同步至远程服务器的/backup目录:rsync -avz /data user@target_ip:/backup,其中-a归档模式保留权限、时间戳等属性,-v显示详细输出,-z压缩传输数据,若需排除特定文件,可使用--exclude参数,如--exclude "*.log"。

增量同步与带宽控制
rsync的增量同步特性仅传输变化文件,大幅提升效率,通过--delete参数可确保目标目录与源目录完全一致,但需谨慎使用,可能误删文件,为避免占用过多带宽,可使用--bwlimit限速,例如--bwlimit=1000限制传输速度为1MB/s,对于大文件同步,可结合--partial和--progress参数,支持断点续传并显示实时进度。
定时任务自动化配置
通过crontab实现定期自动同步,编辑当前用户的crontab:crontab -e,添加如下任务示例:0 2 * * * rsync -avz --delete /data user@target_ip:/backup,表示每天凌晨2点执行同步,建议在测试环境中验证命令无误后再部署至生产环境,为避免crontab环境变量缺失,推荐使用绝对路径,如/usr/bin/rsync。
安全性优化建议
为增强安全性,建议在SSH配置文件/etc/ssh/sshd_config中禁用root直接登录(设置PermitRootLogin no),并修改默认SSH端口,rsync传输时可启用--rsh参数指定加密命令,例如--rsh="ssh -p 2222"使用非默认端口,对于敏感数据,可结合--password-file参数从文件读取SSH密码,但需确保文件权限为600以防止泄露。

相关问答FAQs
Q1: rsync同步过程中出现”Permission denied”错误如何解决?
A1: 通常是由于目标服务器用户权限不足或SSH密钥未正确配置,首先检查目标目录的读写权限,确保执行用户有访问权,确认~/.ssh/authorized_keys文件权限为600,所属用户正确,若问题依旧,可尝试手动SSH登录测试是否成功。
Q2: 如何在rsync同步前检查将要传输的文件列表?
A2: 使用--dry-run参数可模拟同步过程而不实际传输文件,例如执行rsync -avz --dry-run /data user@target_ip:/backup,终端将显示将要同步的文件列表,帮助用户确认操作是否符合预期,避免误操作。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复