对于linux运维工程师来说,数据备份的重要性怎么强调都不为过。因此,一款好用的备份工具是必不可少的,选择rsync——速度快、安全、高效,接下来就介绍如何配置通rsync同步备份服务器。
一般来说,一台linux服务器安装之后,直接用rysnc命令就就可以备份,但这仅仅是client,我们现在要做的是建立一台专门的备份服务器来接收客户端的备份数据,所以我们需要配置rsync服务器,让它常驻系统,通常有2种方法,自身的daemon功能和通过xinetd守护,但是无论哪种方法,都需要一个配置文件/etc/rsyncd.conf,需要我们自己创建。
客户端配置:
客户端1:test1.benet.com(192.168.0.1)
客户端2:test2.benet.com(192.168.0.2)
服务器配置:
服务器ip:192.168.0.100
rsync配置文件:/etc/rsyncd.conf
备份文件存储主目录:/home/backup
客户端1数据存储目录:/home/backup/test1.benet.com
客户端2数据存储目录:/home/backup/test2.benet.com
接下来的操作,都是在备份服务器上进行的。
第一步,我们还是先检查一下系统是否安装了rsync。
# rpm -q rsync
rsync-3.0.6-9.el6_4.1.x86_64
看来我的系统已经安装了,如果你没安装,请执行下面的命# yum -y install rsync,创建/etc/rsyncd.conf文件,内容如下。
主要全局参数
uid = root
gid = root
use chroot = yes #为了安全考虑,让rsync运行于chroot环境
log file = /var/log/rsyncd.log #rsync的日志文件
pid file = /var/run/rsyncd.pid #rsync的pid文件
hosts allow = 192.168.0.0/24 #允许访问的网络(我还推荐你在系统防火墙里也要设置)
hosts deny = * #除了允许的之外,默认禁止访问
为每个客户端服务器专门配置
[test1.benet.com]
comment = backup for test1.benet.com
path = /home/backup/test1.benet.com
read only = no
hosts allow = 192.168.0.1
[test2.benet.com]
comment = backup for test2.benet.com
path = /home/backup/test2.benet.com
read only = no
hosts allow = 192.168.0.2
保存退出,如果你需要更多配置参数,请参照man rsyncd.conf
第三步,准备备份数据的存储目录
#mkdir -p /home/backup/{test1.benet.com,test2.benet.com}
注:如果你需要备份2层以上的主目录,比如/var/lib/mysql/,最好事先在备份服务器上把要备份的多层主目录创建好。
#mkdir -p /home/backup/test1.benet.com/var/lib/mysql
第四步,各种东西准备好了,现在我们该启动rsync了,2种方法,你任选一种。
1.使用rsync的–daemon选项启动,rsync服务默认使用873号端口。
#rsync --daemon
#lsof -i:873
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
rsync 3464 root 3u IPv6 11515 TCP *:rsync (LISTEN)
rsync 3464 root 4u IPv4 11516 TCP *:rsync (LISTEN)
可以看到rsync已经启动成功了。如果你要把他添加到开机启动,可以通过/etc/rc.local文件,执行如下命令即可。
#echo '/usr/bin/rsync --daemon' >> /etc/rc.local
如果你需要终止它,执行
# pkill rsync
# lsof -i:873
可以看到已经关闭了。但是很多用户可能希望,像别的程序一样通过启动脚本/etc/init.d/xxxx来启动或者终止服务会更方
便,由于篇幅太长,我在后面的博文中再介绍。
2.xinetd守护
修改/etc/xinetd.d/rsync文件,把
disable = yes
改成
disable = no
然后重启xinetd即可,
# /etc/init.d/xinetd restart
如果你的xinetd开机并没自动启动的话,需要执行
# chkconfig xinetd on
第五步,到此为止,rsync服务器端已经完成了,接下来,我们以客户端test1.benet.com(192.168.0.1)为例,试试如何同
步文件。注意,该步操作时在客户端服务器上进行的。
配置信息:
备份脚本路径:/root/bin/backup.sh
需要备份的目录:/etc/ /home/
1.创建一个简单的备份脚本/root/bin/backup.sh,内容如下。
#!/bin/sh
#command
rsync=/usr/bin/rsync
echo=/bin/echo
#backup server info
remote_host=192.168.0.100
remote_path=test1.benet.com
#backup
backup_path=”/etc/ /home/”
for path in $backup_path;
do
date=date "+%D %H:%M:%S"
echo"−−−StartBackup path