rsync可以用来在服务器之间 同步数据 or 备份数据
一般linux上自动装了它,用了一下感觉很方便,记录一下以便日后再次用到
rsync这种级别的服务,推荐让root管理员来管理,当然它的相关配置也推荐放在/root目录下面
/root/rsyncd
# rsync的根目录
/root/rsyncd/conf
# rsync服务的配置目录
/root/rsyncd/conf/rsyncd.conf
# rsync的主配置文件
/root/rsyncd/conf/rsyncd.secrets
# rsync的认证配置
/root/rsyncd/conf/rsyncd.motd
# rsync的用来提示用户的注释信息的配置
/root/rsyncd/restful
# rsync服务的相关脚本目录
/root/rsyncd/restful/start.sh
# rsync服务的启动脚本
pid file = /mydata/rsyncd/rsyncd.pid
# rsync的进程文件目录
motd file = /root/rsyncd/conf/rsyncd.motd
# rsync的用来提示用户的注释信息的配置
log file = /mydata/rsyncd/rsyncd.log
# rsync的日志文件路径
address = ******
# 这台服务器的ip
# 若仅在内部使用,请使用内网ip,否则使用公网ip
port = 873
# 监听的端口
hosts allow = *
# 允许的客户端的ip,*表示允许所有
max connections = 5
# 最大连接数量
uid = root
gid = root
use chroot = yes
read only = yes
# 只读
# 若允许客户端上传同步数据,则可以设置 write only 或者 read write
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[linkA]
path = /mydata/rsyncd/test
auth users = root
list = yes
ignore errors
secrets file = /root/rsyncd/conf/rsyncd.secrets
# 上面这段配置是 linkA,同一台rsync服务器上可以配置多个这种东西,每个的同步目录不同
# path 表示linkA所指向的需要同步的目录
# auth users 表示同步这个目录下的文件,需要用哪个用户来认证
# list=yes 表示在用户登入后,可以看到这个目录下的文件列表;反之设置为no
# secrets file 表示该目录所需要的认证配置信息的路径
# 还可以配置 exclude = dir1/ dir2/,表示在这个目录下排除(不同步)这个两个子目录
root:abc
# 格式为 用户:密码
# 注意,此处的用户需要是这台服务器上真实存在的用户
# 注意,此处的密码可以不是这个用户的密码(即可以任意)
welcome to sync server >_<
rsync --daemon --config=/root/rsyncd/conf/rsyncd.conf
# 以后台方式启动
# 指定配置文件路径
rsync --port 873 --list-only root@xx.xx.xx.xx::linkA
# 列出服务器上linkA下面的资源
# 注意,需要指定端口
# 注意,这里的 root 指的是 linkA代表的目录所需要的认证用户
rsync -avzrP root@xx.xx.xx.xx::linkA mypath/
# 把服务器上linkA下面的资源同步到本机的 mypath目录
# 注意,此处不需要指定端口
# 注意,此处的参数 -a 是 archive mode
# 注意,此处的参数 -v 是 传输时的进度等信息
# 注意,此处的参数 -z 是 压缩传输
# 注意,此处的参数 -r 是 递归(递归同步linkA下面的子目录)
# 注意,此处的参数 -P 是 传输进度
# 注意,这里的 root 指的是 linkA代表的目录所需要的认证用户
rsync -avzrP --delete root@xx.xx.xx.xx::linkA mypath/
# 注意,比较上面一条命令,多了参数 --delete
# 它表示客户端的数据要与服务器上的完全一致
# 即如果同步之前,你的客户端的mypath目录下存在服务器上没有的文件,则同步的时候会自动删除它们
# 所以,使用这条命令的时候,请小心不要让你的客户端的同步目录下有其他重要数据
Tip : 建议把客户端的同步命令放入crontab里,定期自动同步or备份