必须在服务器A和B上都安装rsync,其中A服务器上是以服务器模式运行rsync,而B上则以客户端方式运行rsync。这样在web服务器A上
运行rsync守护进程,在B上定时运行客户程序来备份web服务器A上需要备份的内容中,因此本文开了两个虚拟机。
IP为192.168.74.130作为服务器
IP为192.168.74.132作为客户端。
======服务器端安装配置=======
1、升级rsync
yum install rsync
2、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
}
3、随系统启动RSYNC
chkconfig rsync on
4、配置/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/gao/ //需要做镜像的目录,不可缺少!
comment = This is a test //这个模块的注释信息
ignore errors //可以忽略一些无关的IO错误
read only = yes // 只读
list = no //不允许列文件
auth users = gao //认证的用户名,如果没有这行则表明是匿名,此用户与系统无关
secrets file = /etc/rsync.pas //密码和用户名对比表,密码文件自己生成
hosts allow = 192.168.74.132 //允许主机,只允许填IP,不允许填域名
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 //日志记录文件的存放位置
5、配置rsync密码(在上边的配置文件中已经写好路径) /etc/rsync.pas(名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户)
账号:密码
vi /etc/rsync.pas
加入:
gao:123456
6、权限:因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。
cd /etc
chown root.root rsync.pas
chmod 600 rsync.pas
chmod 600 rsyncd.conf
7、rsyncd.motd(配置欢迎信息,可有可无)
vi /etc/rsyncd.motd
rsyncd.motd记录了rsync服务的欢迎信息,你可以在其中输入任何文本信息,如:
Welcome to use the rsync services!
8、让配置生效
service xinetd restart
9、启动rsync server
RSYNC服务端启动
/usr/bin/rsync rsyncd --daemon
10、加入rc.local
在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时把rsync --daemon加载进去。
vi /etc/rc.local
加入一行/usr/bin/rsync rsyncd --daemon
11、检查rsync
netstat -a | grep rsync
========客户端安装配置=========
0、升级rsync
yum install rsync
1、设定密码
vi /etc/rsync.pas
123456
2、修改权限
cd /etc
chown root.root rsync.pas
chmod 600 rsync.pas
3、client连接SERVER
从SERVER端取文件
rsync -vzrtopg --progress --deletegao@192.168.74.130::backup/home/backup/ --password-file=/etc/rsync.pas
#4、向SERVER端上传文件(这一步不用执行,如果执行,前面主机的/etc/rsyncd.conf文件的参数还要修改)
#rsync -vzrtopg --progress --password-file=/etc/rsync.pas /home/backup/gao@192.168.74.130::backup
这个命令将把本地机器/home/backup目录下的所有文件(含子目录)全部备份到RSYNC SERVER(172.20.0.6)的backup模块的设定的备份目录下。
请注意如果路径结束后面带有"/",表示备份该目录下的东东,但不会创建该目录,如不带"/"则创建该目录。
RSYNC用法:
rsync [OPTION]... [USER@]HOST::SRC [DEST] #从RSYNC SERVER备份文件到本地机器
rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST #从本地机器备份文件到RSYNC SERVER
5、自动运行
1)vi /tmp/b.sh //制作脚本文件
把下边的内容复制进去
#!/bin/bash
rsync -vzrtopg --progress --deletegao@192.168.74.130::backup/home/backup/ --password-file=/etc/rsync.pas
2) 给/tmp/b.sh文件执行权限
chmod 744 /tmp/b.sh
3) 执行/tmp/b.sh文本
/tmp/b.sh
6、crontab -e
加入30 * * * * /tmp/b.sh //30分运行一次b.sh脚本文件
7、 Linux 防火墙是用iptables,所以我们至少在服务器端要让你所定义的rsync 服务器端口通过,客户端上也应该让通过。
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
8、启动rsync服务:
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
本文转转于:http://hi.baidu.com/haitun3721/item/fa42b72edfe0640d72863e98