本文介绍了rsync实现远程备份的例子,rsync是类unix系统下的数据镜像备份工具,remote sync,可以镜像保存整个目录树和文件系统等,有需要的朋友参考下。
rsync软件介绍:
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
优化的流程,文件传输效率高。
可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
必须在服务器A和B上都安装rsync,其中A服务器上是以服务器模式运行rsync,而B上则以客户端方式运行rsync。这样在web服务器A上
运行rsync守护进程,在B上定时运行客户程序来备份web服务器A上需要备份的内容中,因此本文开了两个虚拟机。
IP为10.0.0.10作为服务器
IP为10.0.0.12作为客户端。
相关阅读:
======服务器端安装配置=======
1、安装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 = 45 //
最大连接数为5
strict modes =yes //是否检查口令文件的权限
port = 873 //默认端口873
#模块参数
[backup] //这里是认证的模块名,在client端需要指定
path = /web/ //需要做镜像的目录,不可缺少!
comment = backup for web//这个模块的注释信息
ignore errors //可以忽略一些无关的IO错误
read only = yes // 只读
list = no //不允许列文件
auth users = gao //认证的用户名,如果没有这行则表明是匿名,此用户与系统无关
secrets file = /etc/rsync.pas //密码和用户名对比表,密码文件自己生成
hosts allow = 10.0.0.12 //允许主机,只允许填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
加入:
复制代码 代码示例:
rsync:123456
6、权限:因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。
复制代码 代码示例:
cd /etc
chown root.root rsync.pas
chmod 600 rsync.pas
chmod 600 rsyncd.conf
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
========客户端安装配置=========
1、安装rsync
复制代码 代码示例:
yum install rsync -y
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 –delete rsync@10.0.0.10::backup/backup/web --password-file=/etc/rsync.pas
4、向SERVER端上传文件(这一步不用执行,如果执行,前面主机的/etc/rsyncd.conf文件的参数还要修改)
复制代码 代码示例:
#rsync -vzrtopg --progress --password-file=/etc/rsync.pas
/backup/web/rsync@10.0.0.10::backup
这个命令将把本地机器/web目录下的所有文件(含子目录)全部备份到RSYNC SERVER(10.0.0.10)的backup模块的设定的备份目录下。
请注意如果路径结束后面带有"/",表示备份该目录下的东东,但不会创建该目录,如不带"/"则创建该目录。
RSYNC用法:
rsync [OPTION]... [USER@]HOST::SRC [DEST] #从RSYNC SERVER备份文件到本地机器
rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST #从本地机器备份文件到RSYNC SERVER
5、自动运行
1)vi /backup/rsync.sh //制作脚本文件
把下边的内容复制进去
复制代码 代码示例:
#!/bin/bash
rsync -vzrtopg --progress --deletegao@10.0.0.10::backup /backup/web/ --password-file=/etc/rsync.pas
2) 给/backup/rsync.sh文件执行权限
复制代码 代码示例:
chmod 744 /backup/rsync.sh
3) 执行/backup/rsync.sh文本
复制代码 代码示例:
./backup/rsync.sh
6、crontab -e
加入0 12 * * * /backup/rsync.sh //每天的12点运行一次rsync.sh脚本文件
7、启动rsync服务:
复制代码 代码示例:
/usr/bin/rsync --daemon
以上介绍了rsync实现远程文件备份的方法,希望对大家有所帮助。