简介
一个跨平台的资料备份与同步工具
原理
在进行同步之前,会先比较分析两端的数据,找出数据发生改变过多文件,再将这些文件传输到目的端,完成备份工作
优点
1、可以进行增量备份,即使备份中断,下次备份会从从上次中断的位置继续
2、可以利用ssh进行数据加密传输
3、开源、跨平台
缺点
1、遇到文件数或目录层数多的时候,效率较差。文件数到达一定数量时,rsync可能无法执行
2、操作时务必小心,否则容易覆盖或误删除数据
运行模式
1、在本机上运行,用法与cp几乎一模一样:
1 | rsync -av /etc /tmp(将/etc目录备份到/tmp/etc目录里) |
2、通过ssh通道在传输数据:
1 | rsync -av -e ssh [email protected]:/etc /tmp(将192.168.1.1上的/etc目录备份到本机的/tmp目录) |
3、使用daemon的方式对数据进行备份传输
此时rsync服务端需启用873端口
环境:
1 | server: 192.168.1.101 |
说明:
将server上的/var/log里的文件同步到client的/tmp/log目录
服务端配置:
首先创建一个配置文件/etc/rsyncd.conf
1 | [root@kof ~]# vim /etc/rsyncd.conf |
创建密码文件/etc/rsyncd.pwd
1 | [root@kof ~]# vim /etc/rsyncd.pwd |
客户端配置:
1 | [root@client ~]# vim /etc/rsync.pwd #创建密码文件 |
开始同步:
1 | [root@client ~]# rsync -avzP --password-file=/etc/rsync.pwd [email protected]::downloads/* /tmp/log |
也可从客户端同步到服务端,服务端配置文件的read only必须改为false。
下面是rsync的部分语法说明:
1 | [root@linux ~]# rsync [-avrlptgoD] [-e ssh] [user@host:/dir] [/local/path] |