分类: LINUX
2013-08-19 10:19:19
原文地址:用rsync搭建数据备份服务 作者:yueming
一、环境
备份文件的服务器(服务器端):192.168.1.88 (Centos 5)
需要发送备份文件的服务器(客户端):192.168.1.125 (CENTOS 5)
建议客户端和服务器端都用rsync最新版本,如果两者版本不同,很容易造成验证失败。
目前我们用最新版本:rsync-3.0.9.tar.gz。 建议客户端和服务器端都安装这一版本
安装过程如下:
tar -zxvf rsync-3.0.9.tar.gz
cd rsync-3.0.9
./configure
make && make install
二、安装配置
1.服务器端的配置
A、采用系统默认安装的rsync 编辑/etc/rsyncd.conf文件,如果没有则新建一个。
vi /etc/rsyncd.conf
strict modes= yes #check passwd file
port= 873 #default port
logfile= /var/log/rsyncd.log
pidfile= /var/run/rsyncd.pid
max connections= 0
#[modules]
[S1] #备份模块 备份S1服的数据
uid= root
gid= root
path= /opt/data_S1 # 设置备份目录
read only= false
host allow= 192.168.1.125 #本模块目录只允许Ip远程访问
auth users= root
secrets file= /etc/rsyncd.pas
#比如S2服务器我们可以用一下方式配置。类似于 S1
[S2]
uid= root
gid= root
path= /opt/data_S2 # 设置备份目录
read only= no
host allow= 192.168.1.XXX本模块目录只允许Ip远程访问
auth users= root
secrets file= /etc/rsyncd.pas
B、 添加一个密码文件
vi /etc/rsyncd.pas
添加内容如下:
root:6307161
C、改变权限为600
chmod 600 /etc/rsyncd.pas
D、启动服务(如开有防火墙请允许873端口通过)
rsync --daemon --config=/etc/rsyncd.conf &
2.客户端配置
A、添加密码文件
vi /etc/rsyncd.pas (没有就新建)
内容如下:
6307161 #注意,这个地方与服务端不同,只填写密码,不填写账户,否则操作过程密码验证要报错
B、改文件权限为600
chmod 600 /etc/rsyncd.pas
三、备份操作
1、 先用手动输入看备份是否Ok
rsync -avz --password-file=/etc/rsyncd.pas --progress /opt/data/dump.rdb 将本地目录/opt/data/dump.rdb文件同步到远程服务器192.168.1.88的模块所对应的目录下
(见配置:path= /opt/data_S1 # 设置备份目录)
2、我们用脚本来自动执行备份
列:rsync -avz --password-file=密码文件路径 本地需要备份文件的路径 username@需要备份的主机IP::备份里的模块名称
在/root建一个脚本文件, vi backup, 内容如下一样:
#!/bin/sh
rsync -avz --password-file=/etc/rsyncd.pas --progress /opt/data/dump.rdb
保存,添加权限:chmod u+x backup
3、写入服务器计划任务
crontab –e 输入一下内容:
1 * * * * /root/backup
保存。
重新启动crond进程
cd /etc/init.d
./crond restart
就这么简单,完了。