Linux Rsync 远程文件同步

Rsync(remote synchronize)是一款开源的Linux/Unix远程数据同步工具,可以通过网络快速同步多台服务器主机之间的文件与目录。其核心为“Rsync算法”,它由澳大利亚计算机工程师Andrew Tridgell发明。算法思路利用差分计算两个文件不同编码值,并将该编码值传给同步源文件,来获取两个文件在不进行文件内容直接网络传输的情况下知道两个文件的不同和相同之处,从而仅仅对文件的不同内容进行同步传输,以减少网络数据传输量,进而提高传输效率达到同步文件的效果。算法核心包括了Checksum算法、传输算法、Checksum searching算法、对比算法。
Rsync是一个客户端与服务端架构部署的网络结构。Rsync服务端指运行rsync deamon守护进程的服务器,并设置备份目录来保存同步目标文件;Rsync客户端则发起rsync连接的服务器,存放备份的同步源文件。
Rsync工具不仅提供了高效快速的增量同步算法,对于数据库备份还具备许多完善、灵活的功能特性:
1.支持备份更新目录和文件;
2.适合数据存储结构大文件的增量同步备份,减少备份传输耗时;
3.对多个同步文件内部以流水线减少文件等待延时;
4.支持多种网络环境下rsh、ssh、nfs、socket端口等传输方式,可灵活支持数据库的加密、压缩等文件特性;
5.适合数据库镜像备份,支持匿名传输;
6.支持数据库备份数据可灵活保持连接、文件属性、权限、设备以及时间等;
官网:https://rsync.samba.org/
下载地址:https://rsync.samba.org/ftp/rsync/

一、安装
rsync是基于服务器/客户端(c/s)的模式,因此一个完整的rsync服务应该由客户端和服务器端来组成。按照习惯,我们把要备份的这端叫客户端(rsync client),接受备份的那端叫服务器端(rsync)。所以客户端、服务端都需要安装rsync。
下载安装:
wget https://rsync.samba.org/ftp/rsync/rsync-3.1.1.tar.gz
tar -zxvf rsync-3.1.1.tar.gz 
cd  rsync-3.1.1
./configure
make

make install

二、配置rsync server
rsync的主要有以下三个配置文件rsyncd.conf(主配置文件)、rsyncd.secrets(密码文件)、rsyncd.motd(rysnc服务器信息)服务器配置文件(/etc/rsyncd.conf),该文件默认不存在,请创建它。
cd /etc
#touch rsyncd.conf  #创建rsyncd.conf,这是rsync服务器的配置文件。rsyncd.conf是rsync服务器主要配置文件
#touch rsyncd.secrets  #创建rsyncd.secrets ,这是用户密码文件。
#chmod 600 rsyncd.secrets  #将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功!
#touch rsyncd.motd
1.主配置rsyncd.conf
vi rsyncd.conf
#全局参数
address = 192.168.18.178
port = 1873
uid = root //运行RSYNC守护进程的用户
gid = root //运行RSYNC守护进程的组
use chroot = yes  //使用chroot
max connections = 4 // 最大连接数为4
strict modes =yes  //是否检查口令文件的权限
read only = yes
hosts allow = 192.168.18.0/24
hosts deny = *
motd file = /etc/rsyncd.motd
pid file =/var/run/rsyncd.pid
log file = /var/log/rsync.log
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
#模块参数
[backup]
path = /opt/backup
list=yes
ignore errors 
auth users = root
secrets file = /etc/rsyncd.secrets  
comment = This is test data

2.配置rsync密码
vi rsync.pas $格式(一行一个用户,账号:密码)
root:abc123
3.rsyncd.motd(配置欢迎信息,可有可无)
# vi /etc/rsyncd.motd
rsyncd.motd记录了rsync服务的欢迎信息,你可以在其中输入任何文本信息,如:

Welcome to use the rsync services!

三、启动rsync server
1.--daemon参数方式,是让rsync以服务器模式运行
/usr/bin/rsync --daemon  --config=etc/rsyncd.conf
2.xinetd方式
修改services加入如下内容
# nano -w /etc/services
rsync  873/tcp  # rsync 
rsync  873/udp  # rsync
这一步一般可以不做,通常都有这两行(我的RHEL4和GENTOO默认都有)。修改的目的是让系统知道873端口对应的服务名为rsync。如没有的话就自行加入。
设定 /etc/xinetd.d/rsync, 简单例子如下:
  # default: off
  # description: The rsync server is a good addition to am ftp server, as it \
  #       allows crc checksumming etc.
  service rsync
  {
disable = no
socket_type     = stream
wait            = no
user            = root
server          = /usr/bin/rsync
server_args     = --daemon
log_on_failure  += USERID
  }
上述, 主要是要打开rsync這個daemon, 一旦有rsync client要连接時, xinetd会把它转介給 rsyncd(port 873)。然后service xinetd restart, 使上述设定生效.

四、客户端同步
1.创建密码文件
echo "abc123" > /opt/root.secrets
chmod 600 /opt/root.secrets 
2.备份
rsync -avzP --password-file=/opt/root.secrets [email protected]::backup --port=873  /opt/backup

或:rsync -vzrtopg --delete --progress [email protected]::backup --port=873  /opt/backup  --password-file=/opt/root.secrets

参考:
1.rsync安装使用详解
2.把rsync错误报告说清楚
3.rsync同步完整配置
4.RSync实现文件备份同步
5.利用inotify+rsync实现Linux文件批量更新
6.一种基于Rsync算法的数据库备份方案设计

你可能感兴趣的:(linux)