rsync同步笔记

发布于 2017-08-24 作者 [重庆SEO]

用法

rsync src dest

这是最简单的用法,表示同步src到dest。(即,执行之后,dest的文件与src的相同,以src的为准)

rsycn的服务端为服务器的文件接收端,rsycn的客户端为服务器的文件推动端。

示例

node1 192.168.1.101

node2 192.168.1.102

可以创建一些基础数据,用作示范

mkdir -p /www/test1/
echo node1-1 > /www/test1/node1-1.txt
echo node1-2 > /www/test1/node1-2.txt
echo node1-3 > /www/test1/node1-3.txt
echo node1-4 > /www/test1/node1-4.txt

mkdir -p /www/test2/
echo node2-6 > /www/test2/node2-6.txt
echo node2-7 > /www/test2/node2-7.txt
echo node2-8 > /www/test2/node2-8.txt
echo node2-9 > /www/test2/node2-9.txt

SSH方式

在node1下

同步node1数据到node2,所有数据

rsync -vzacu /www/test1/ root@192.168.1.102:/www/test2/ -e "ssh -p 22"

同步node1数据到node2,排除指定数据

rsync -vzacu /www/test1/ root@192.168.1.102:/www/test2/ --exclude "node1-2.txt" -e "ssh -p 22"

下载node2数据到node1,所有数据

rsync -vzacu root@192.168.1.102:/www/test2/ -e "ssh -p 22" /www/test1/

双向认证方式

将要实现的结果:在node1下执行将node2数据同步到node1

在node2下编辑

vi /etc/rsyncd.conf

写入

# /etc/rsyncd: configuration file for rsync daemon mode
# See rsyncd.conf man page for more options.
# configuration example:

uid = root
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
log file = /var/log/rsync.log

#模块名称
[test]
#同步目录
path =/www/test2
ignore errors
read only = true
list = false
#允许那个客户端来同步
hosts allow = 192.168.1.101
#拒绝客户端,这里表示不拒绝
hosts deny = 0.0.0.0/32
#同步文件里面的同步账户,可以随便设置,但必须和/etc/rsync.pass里的账户一致
auth users = rsync
secrets file = /etc/rsync.pass 

编辑帐号和密码

 vi /etc/rsync.pass

写入帐号:密码,每行一个

rsync:123456

赋予权限

chmod 600 /etc/rsync.pass

在node1下编辑

vi /etc/rsync_client.pass

写入密码,仅需输入密码

123456

赋予权限

chmod 600 /etc/rsync_client.pass

在node1下执行同步命令

rsync -avzp --password-file=/etc/rsync_client.pass rsync@192.168.1.102::test /www/test1