简介:一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步 官方网站:http://rsync.samba.org/ 在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文档的原始位置,发起端应对该位置具有读取权限。 rsync同步示意图: rsync命令的用法 基本格式:rsync [选项] 原始位置 目标位置 常用选项: -a:归档模式,递归并保留对象属性,等同于 -rlptgoD -v:显示同步过程的详细(verbose)信息 -z:在传输文件时进行压缩(compress) -H:保留硬连接文件 -A:保留ACL属性信息 --delete:删除目标位置有而原始位置没有的文件 --checksum:根据对象的校验和 -r:递归模式,包含目录及子目录中所有文件 -l:对于符号链接文件仍然复制为符号链接文件 -p:保留文件的权限标记 -t:保留文件的时间标记 -g:保留文件的属组标记(仅超级用户使用) -o:保留文件的属主标记(仅超级用户使用) -D:保留设备文件及其他特殊文件

配置rsync同步源: 1.建立/etc/rsync.conf配置文件 注意:如果采用匿名同步的方式,只要将其中的auth users和secrets file配置记录去掉就可以了。 2.为备份账户创建数据文件,vim /etc/rsync_users.db,添加一行用户记录,以冒号分隔,用户名称为“backuper”,密码为“abc123” 3.启动rsync服务程序,运行参数为“--daemon”,若要关闭rsync服务,可以采取kill进程的方式,如kill $(cat /var/run/rsyncd.pid) 4.使用rsync备份工具(在rsync客户机,发起端,服务器B) 1)例:将文件/etc/fstab、目录/boot/grub同步备份到/opt目录下(相当于本地备份) 2)例:将rsync同步源上的网站根目录下载到本地的/root下进行备份(远程备份) 首先在服务器上配置防火墙,为了保证备份账户文件的安全,需要调整文件权限,避免账号信息泄露。并搭建一个简单的网页。 3)执行远程备份 4)例:将源服务器中的wwwroot共享模块(网站根目录),下载到本地的/myweb目录下,(删除目标位置有而原始位置没有的文件)首先确认在客户机上的/myweb下只有一个网页 然后执行备份 查看在客户机的/myweb(里面只有同步源服务器上的网页,本地的t385.html备份删除,因为加了--delete的备份选项) 为了在同步过程中不用输入密码,需要创建一个密码文件。在执行rsync同步时使用选项“--password-file=密码文件路径”指定即可 调整密码文件权限,创建任务计划 验证结果 5.配置rsync+inotify实时同步 1)调整inotify内核参数,并让其生效 2)安装inotify-tools 配置完后,执行make && make install命令 3)以监控网站目录/var/www/html为例(当/var/www/html进行增删改查的时候就会动态显示监控信息) 6.编写触发式同步脚本 首先在同步源上进行操作(配置ssh) 1)创建用户rput: useradd rput && passwd rput 2)开启sshd服务: [root@web html]# service sshd start 3)允许rput用户登录: Vi /etc/ssh/sshd_config 添加:AllowUsers rput@192.168.1.8 启用密钥对验证 配置发起端:(实现实时同步需要使用秘钥对的方式验证身份) 1)建立秘钥对文件实现无交互式登录 将公钥文件上传至服务器 在服务器中导入公钥文本 2)编写触发式同步脚本 Vi /opt/inotify_rsync.sh 设置执行权限,和开机自启动 注意:如果同步失败,在服务器上把/var/www/html目录设置为所有人写入权限。 Chmod -R 777 /var/www/html 清空客户端/var/www/html中的网页(方便测试) 在/var/www/html中添加网页aaa.html 在服务器192.168.1.7上查看/var/www/html中有没有aaa.html (如果有代表同步正常)