注意事项:
1、主服务器上有配置文件,从服务器上没有配置文件
2、用户名的密码不用跟主机密码一致;
目标:多服务器文件同步
环境
:2
台
centos5.5
web:10.80.11.243
backup:10.80.11.244
撰写人:
hx10
日期:
2010/6/2
hangzhou
Blog:http://hi.baidu.com/hx10
第一部分:简单的数据备份
第一步:服务器端的配置
#rpm –qa |grep rsync
如果没有的话,则自行下载安装
#cd
/usr/local/src
#
wget http://www.samba.org/ftp/rsync/src-previews/rsync-3.0.6pre1.tar.gz
#tar –zxvf rsync-3.0.6pre1.tar.gz
#cd rsync-3.0.6pre1
#./configure && make && make install
假设
web
服务器有三个目录需要备份
/www
/home/web_user1/
/home/web_user2/
创建
rsync
的配置文件
#vim /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[www]
path = /www/
ignore errors
read only = true
list = false
hosts allow = 10.80.11.244
hosts deny = 0.0.0.0/32
auth users = backup
secrets file = /etc/backserver.pas
[web_user1]
path = /home/web_user1/
ignore errors
read only = true
list = false
hosts allow = 10.80.11.244
hosts deny = 0.0.0.0/32
uid = web_user1
gid = web_user1
auth users = backup
secrets file = /etc/backserver.pas
[web_user2]
path = /home/web_user2/
ignore errors
read only = true
list = false
hosts allow = 10.80.11.244
hosts deny = 0.0.0.0/32
uid = web_user2
gid = web_user2
auth users = backup
secrets file = /etc/backserver.pas
备注:
uid = nobody //
指定文件传输过程中的用户身份
gid = nobody // 指定文件传输过程中的组身份
gid = nobody // 指定文件传输过程中的组身份
log file = /var/log/rsyncd.log //
指定使用独立的日志文件的位置
pid file = /var/run/rsyncd.pid // 保存 pid 到指定文件,以便于使用脚本终止进程
pid file = /var/run/rsyncd.pid // 保存 pid 到指定文件,以便于使用脚本终止进程
read only = yes //
该目录设置为只读,即只允许客户端下行同步,不允许上传。若需要进行从备份机还原数据,改为
no
rsyncd
默认在
873
端口监听服务,可在客户端使用
telnet
连接测
密码文件为
/etc/backserver.pas
#vim /etc/backserver.pas
backup:123456
格式为:用户名
:
密码
设置密码文件仅仅
root
用户能访问
#chmod 600 /etc/backserver.pas
然后建立备份用户
#useradd backup
#passwd backup
在服务器端启动
rsync
服务
#
nohup rsync --daemon &
第二步:备份端的配置
安装
rsync
软件,同上
设置密码文件
#vim /etc/rsync.pas
123456
在客户端不需要加用户名,只需要加密码,同时设置为只有
root
有权限
#chmod 600 /etc/rsync.pass
创建备份目录
#mkdir-p /backup/www
#mkdir -p /backup/web_user1
#mkdir -p /backup/web_user2
把服务器端文件
www
模块备份到本机
#/usr/bin/rsync
-vzrtopg --delete --exclude "logs/" --exclude "conf/ssl.*/" --progress
backup@10.80.11.243::www /backup/www/ --password-file=/etc/rsync.pass
--delete
是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
,
删除本地目录中多余的文件
-- exclude "logs/"
表示不对
/www/logs
目录下的文件进行备份。
--exclude "conf/ssl.*/"
表示不对
/www/conf/ssl.*/
目录下的文件进行备份。
对其他的模块的备份如下:
#/usr/bin/rsync
-vzrtopg --delete --exclude "logs/" --exclude "conf/ssl.*/" --progress
backup@10.80.11.243::web_user1 /backup/web_user1/
--password-file=/etc/rsync.pass
#/usr/bin/rsync
-vzrtopg --delete --exclude "logs/" --exclude "conf/ssl.*/" --progress
backup@10.80.11.243:: web_user2 /backup/web_user2/
--password-file=/etc/rsync.pass
如果提示以下错误
@ERROR: invalid uid web_user2
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6pre1]
则需要修改
web
服务器上的
web_user2
的
uid
和
gid
注释掉
定时备份的话,在
crontab –e
里面设置
附
:
备份脚本,可以加入
crontab,
按时自动备份(
backup
服务器上运行)
#!/bin/bash
DATE=`date
+%w`
rsync -tvzrp -e ssh --progress --delete backup@10.80.11.244::www /backup/www/$DATE
--password-file=/etc/rsync.pass > /var/log/test.$DATE
mail -s "Backup is done" yhl5555@126.com < /var/log/test.$DATE
本文详细介绍了在CentOS5.5环境下,如何通过rsync实现两台服务器之间的简单数据备份和多目录同步,包括服务器端配置、备份端配置、密码文件设置及脚本自动备份等内容。
5345

被折叠的 条评论
为什么被折叠?



