用rsync实现数据在不同服务器之间镜像备份
作者:网络医生 发布于:2011-5-19 20:37 Thursday 分类:Linux技术
RSYNC软件介绍:
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了—remote sync。它的特性如下:
可以镜像保存整个目录树和文件系统,可以很容易做到保持原来文件的权限、时间、软硬链接等等。无须特殊权限即可安装,优化的流程,文件传输效率高。
软件下载地址:
可以从rsync的官方网站上下载,http://rsync.samba.org
一、下载、安装rsync
#wget http://rsync.samba.org/ftp/rsync/rsync-3.0.8.tar.gz
#tar zxvf rsync-3.0.8.tar.gz
#cd rsync-3.0.8
#.configure --prefix=/usr/local/rsync
#make
#make install
注:建议用系统自带的rpm包安装,这样比较省事,安装完成后运行文件放在/usr/bin/rsync
二、配制rsync server
1、启动RSYNC
#vi /etc/xinetd.d/rsync
把原来的YES改成NO
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
随系统启动RSYNC
#chkconfig rsync on
2、配置/etc/rsyncd.conf(如果不存在需要手动生成)
rsyncd.conf的参数写在上边就是全局参数和写在模块里的就是模块参数
#vi /etc/rsyncd.conf
全局参数
uid = root //运行RSYNC守护进程的用户
gid = root //运行RSYNC守护进程的组
use chroot = no //不使用chroot
max connections = 4 // 最大连接数为4
strict modes =yes //是否检查口令文件的权限
port = 873 //默认端口873
模块参数
[backup] //这里是认证的模块名,在client端需要指定
path = /home/backup/ //需要做镜像的目录,不可缺少!
comment = This is a test //这个模块的注释信息
ignore errors //可以忽略一些无关的IO错误
read only = yes // 只读 ,如果允许客户端上传文件则更改为no
list = no //不允许列文件
auth users = backupuser //认证的用户名,如果没有这行则表明是匿名,此用户与系统无关
secrets file = /etc/rsync.pas //密码和用户名对比表,密码文件自己生成
hosts allow = 192.168.1.1,10.10.10.10 //允许主机
hosts deny = 0.0.0.0/0 //禁止主机
#transfer logging = yes
注释:下面这些文件是安装完RSYNC服务后自动生成的文件
pid file = /var/run/rsyncd.pid //pid文件的存放位置
lock file = /var/run/rsync.lock //锁文件的存放位置
log file = /var/log/rsyncd.log //日志记录文件的存放位置
3、配置rsync密码
在上边的配置文件中已经写好路径 /etc/rsync.pas,名字随便写,只要和上边配置文件里的一致即可,格式一行一个用户。
#vi /etc/rsync.pas
例子:
backupuser:123456
权限:因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。
#cd /etc
#chown root:root rsync.pas
#chmod 600 rsync.pas
配置欢迎信息,可有可无
# vi /etc/rsyncd.motd
rsyncd.motd记录了rsync服务的欢迎信息,你可以在其中输入任何文本信息,如:
Welcome to use the rsync services!
4、让配置生效
#service xinetd restart (如果没有安装xinetd则该命令不生效,xinetd可以不安装,不影响使用)
三、启动rsync server
RSYNC服务端启动的两种方法
1、启动rsync服务端(独立启动)
#/usr/bin/rsync --daemon
2、启动rsync服务端 (有xinetd超级进程启动)
# /etc/rc.d/init.d/xinetd reload
四、加入rc.local,让系统启动时自动运行
#vi /etc/rc.local
加入一行/usr/local/rsync –daemon
五、检查rsync 是否正常运行,如果发现873端口打开,则rsync运行正常
#netstat -a | grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN
六、配置rsync client
1、设定密码
#vi /etc/rsync.pas
123456 (该文件中只有密码没有用户名)
修改权限
#cd /etc
#chown root:root rsync.pas
#chmod 600 rsync.pas
2、client连接server
从server端取文件
/usr/bin/rsync -vzrtopg --progress --delete backupuser@192.168.0.217::backup /home/backup --password-file=/etc/rsync.pas
向SERVER端上传文件
/usr/bin/rsync -vzrtopg --progress --password-file=/root/rsync.pas /home/backup backupuser@192.168.0.217::backup
这个命令将把本地机器/home/backup目录下的所有文件(含子目录)全部备份到RSYNC SERVER的backup模块的设定的备份目录下。
请注意如果路径结束后面带有"/",表示备份该目录下的东东,但不会创建该目录,如不带"/"则创建该目录。
RSYNC用法:
rsync [OPTION]... [USER@]HOST::SRC [DEST] #从RSYNC SERVER备份文件到本地机器
rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST #从本地机器备份文件到RSYNC SERVER
3、设置开机自动运行
1)vi /usr/local/rsync/time.sh //制作脚本文件
把下边的内容复制进去
#!/bin/bash
/usr/bin/rsync -vzrtopg --progress --delete backupuser@192.168.0.217::backup /home/backup --password-file=/etc/rsync.pass
2) crontab -e
加入55 * * * * /usr/local/rsync/time.sh //每55分运行一次time.sh脚本文件
七、用iptables 设置访问控制
iptables -A INPUT -p tcp -s !192.168.100.10 --dport 873 -j DROP
设置只有 192.168.100.10 这个 client IP 能进入这台 rsync server。
附:
rsync命令参数
-v 表示verbose详细显示
-z 表示压缩
-r 表示recursive递归
-t 表示保持原文件创建时间
-o 表示保持原文件属主
-p 表示保持原文件的参数
-g 表示保持原文件的所属组
-a 存档模式
-P 表示代替-partial和-progress两者的选项功能
-e ssh建立起加密的连接。
--partial阻止rsync在传输中断时删除已拷贝的部分(如果在拷贝文件的过程中,传输被中断,rsync的默认操作是撤消前操作,即从目标机上删除已拷贝的部分文件。
--progress是指显示出详细的进度情况
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
--exclude不包含/ins目录
--size-only 这个参数用在两个文件夹中的差别仅是源文件夹中有一些新文件,不存在重名且被修改过的文件,因为这种文件有可能会因为内容被修改可大小一样,而被略过。这个参数可以大大地提高同步的效率,因为它不需要检查同名文件的内容是否相同。
--password-file来指定密码文件,内容包含server端指定认证用户的密码。
这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。
backupuser@192.168.0.217::backup backupuser是指server端指定认证的用户
192.168.0.217是指服务器端的ip
::backup 表示服务器端需要同步的模块名称;
/home/quack/backup 是同步后的文件指存放在本机的目录地址。
/var/log/rsync 是同步后的日志文件存放在本机的目录地址。
注意: 不带“/” 则目录名也被镜像,带“/” 则只有目录里面的东西被镜像了
联系方式
-
mail: mail@num123.com
QQ: 76908265
日志分类
随机日志
日历
标签云
最新碎语
- 博客多年没更新了,但一直都在运行。天朝的管制太严格了,今天迁移到香港的服务器上。
2018-07-25 13:51
- 决心一下,行动要快。
2013-09-09 09:02
- 为灾区人民祈福!
2013-04-22 12:45
- 都是停电惹的祸
2013-03-17 20:06
- 假期结束,开始上班。
2012-08-13 07:17
- 堵到机场高速上了
2012-07-13 18:14
- 人生的计划永远赶不上变化。
2012-07-10 18:45
- 接受你所接受的,珍惜你所拥有的。
2012-05-11 14:13
发表评论: