rsync远程同步

简介: rsync远程同步

一、rsync简介


  • 工具简介: rsync是一个开源的快速备份工具,可以在不同主机间镜像同步整个,目录树,支持增量备份,保持链接和权限,采用优化的同步算法,传输前执行压缩,使用预异地备份,镜像服务器等应用


  • 相关:


(1)rsync是一款快速增量备份工具

(2)Remote Sync,远程同步

(3)支持本地复制,或者与其他SSH、rsync主机同步

(4)rsync是Linux系统默认安装的基本组件之一

(5)官方网站:http://rsync.samba.org

  • 服务器身份区分:


发起端: 负责发起rsync同步操作的客户机(对同步源的文档位置要有读取权限)

同步源: 负责去响应来自客户端rsync同步操作的服务器(负责提供文档的原始位置)


20201221094911531.png


二、使用rysnc工具(进行同步备份)


  • 本地备份:类似与cp命令
    举例: rsync /etc/fstab /opt (将本地文件/etc/fstab同步到/opt目录下)
  • 基本语法: rsync 选项 源位置 目标位置
  • 常用选项:
-a :归档模式;保留文件权限、属性等信息,相当于组合选项“-r|ptgoD”
-v :显示同步的详细过程
-H :保留硬链接文件
-A :保留ACL属性信息
-z :传输时进行压缩
--delete :删除目标位置有,而原始位置没有的文件
--checksum :根据校验和来决定是否跳过文件
常用同步命令:
rsync -avz 共享用户名@共享服务器::共享模块名 要同步到的目录名


三、案例


服务器名称 ip地址 扮演角色
rsync1 192.168.100.11 同步源
rsync2 192.168.100.12 发起端


要求: 将服务器rsync1的/var/www/html目录,用备份账户AAA备份到服务器rsync2上面


(1)服务器rsync1的配置

******安装httpd,准备/var/www/html目录
[root@rsync1 ~]# mount /dev/cdrom /media/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@rsync1 ~]# yum -y install httpd (使用yum安装httpd)
。。。。。。
完毕!
[root@rsync1 ~]# echo "aaaaaaaaaaaaaa" > /var/www/html/index.html (在指定文件夹例写入一个新的引导文件)
******建立/etc/rsyncd.conf配置文件
[root@rsync1 ~]# cat <<a>> /etc/rsyncd.conf  
(因为/etc/rsyncd.conf中全都是以 # 号开头的注释行,所有直接追加内容即可)
> use chroot = yes                                               (禁锢在源目录)
> address = 192.168.100.11                                       (监听地址,本机地址)
> port = 873                                                     (监听端口)
> log file = /var/log/rsyncd.log                                 (日志文件)
> pid file = /var/run/rsyncd.pid                                 (pid进程文件)
> hosts allow = 192.168.100.0/24                                 (允许访问的客户端地址)
> [aaa]                                                          (共享模块名)
> path = /var/www/html                                           (需要同步的实际路径,也就是可以同步的目录)
> comment = rsync                                                (描述信息,随便写)
> read only = yes                                                (只读)
> dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2   (同步时不在压缩的文件类型)
> auth users = AAA                                               (授权同步的账户)
> secrets file = /etc/rsync_users.db                             (账户所在的数据文件)
> a
******创建备份账户数据文件
[root@rsync1 ~]# echo "AAA:123.com" > /etc/rsync_users.db(写入账户AAA,密码为123.com)
[root@rsync1 ~]# chmod 600 /etc/rsync_users.db (对数据文件进行权限保护)
******启动rsync服务程序
[root@rsync1 ~]# rsync --daemon  (启动)
[root@rsync1 ~]# netstat -anpt | grep rsync (查看rsync服务监听状态,发现成功启动)
tcp        0      0 192.168.100.11:873      0.0.0.0:*               LISTEN      1311/rsync  

(2)发起端的配置

******实现将rsync1上的/etc/www/html目录中的内容同步到rsync2上的root目录下
[root@rsync2 ~]# rsync -avz AAA@192.168.100.11::aaa /root  (AAA是共享账户,aaa是共享模块名,/root是指同步到root目录下)
             或者rsync -avz rsync://AAA@192.168.100.11/aaa /root (都得输入密码,效果一样的)
Password:   (按照提示输入密码)
receiving incremental file list
./
index.html
sent 46 bytes  received 117 bytes  65.20 bytes/sec
total size is 15  speedup is 0.09
[root@rsync2 ~]# ll  (发现已经成功同步到root目录下)
总用量 8
-rw-------. 1 root root 1263 10月  8 17:23 anaconda-ks.cfg
-rw-r--r--  1 root root   15 12月 21 17:59 index.html
至此rsync远程同步完成!!!!

四、扩展(定时备份)


  • 要求: 生产环境中需要每天的22:30分对服务器目录做一次同步(结合crond服务实现)
  • 步骤
******前置工作
[root@rsync2 ~]# echo "123.com" > pass   (编写一个存放AAA密码的文件)
[root@rsync2 ~]# chmod 600 pass          (降低文件权限)
[root@rsync2 ~]# mkdir /beifen           (创建一个备份目录)
[root@rsync2 ~]# crontab -e (使用crond工具写入备份命令)
30 22 * * * /usr/bin/rsync -az --delete --password-file=/root/pass AAA@192.168.100.11::aaa /beifen  
~       
保存退出                 
[root@rsync2 ~]# systemctl restart crond (重启crond服务)
[root@rsync2 ~]# systemctl enable crond  (设置为开机自启)
[root@rsync2 ~]# date -s "2020-12-21  22:29"  (利用date命令修改时间)
2020年 12月 21日 星期一 22:29:00 CST
[root@rsync2 ~]# date                (查看当前时间,等待到22:30)
2020年 12月 21日 星期一 22:29:02 CST 
[root@rsync2 ~]# date                (时间到了之后,查看创建的备份目录)
2020年 12月 21日 星期一 22:30:02 CST
[root@rsync2 ~]# ll /beifen/         (发现成功备份)
总用量 4
-rw-r--r-- 1 root root 15 12月 21 17:59 index.html


目录
相关文章
|
8月前
|
监控 算法 Unix
rsync远程同步
rsync远程同步
97 0
|
监控 算法 Linux
使用 Rsync 实现远程同步,以及实时同步
Rsync 全称为:Remote Sync(远程同步),是一款开源的快速备份工具,可以在不同主机间镜像同步整个目录树,支持增量备份,保持链接和权限,采用优化的同步算法,传输前执行压缩,适用于异地备份,镜像服务器等应用(Linux 系统默认安装)
1090 0
使用 Rsync 实现远程同步,以及实时同步
|
监控 Linux 网络安全
|
9月前
|
网络安全
rsync同步
rsync同步
|
监控 安全 关系型数据库
rsync—远程同步(二)
rsync—远程同步(二)
rsync—远程同步(二)
|
监控 算法 安全
rsync远程同步(上)
一、rsync介绍 1.1 rsync简介 rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
268 0
|
消息中间件 缓存 监控
rsync远程同步(下)
一、rsync介绍 1.1 rsync简介 rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
127 0
|
监控 安全 数据安全/隐私保护
|
安全
Rsync远程同步配置
# rsync服务端配置 # 安装rsync软件包 yum -y install rsync # 生成rsyncd.
869 0
|
分布式计算 Hadoop 开发工具
Rsync 实现远程同步
         介绍   rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
1703 0