centos搭建rsync进行定时备份

post by rocdk890 / 2012-5-18 16:03 Friday linux技术
  最近看到很多朋友因没有及时备份网站数据,造成数据大量丢失,今天给大家介绍rsync来备份网站数据,当然比不上ftp的传输速度,但安全性要好得多.
  系统:centos 5.5
  需要的软件包:rsync-3.0.7-1.el5.rf.i386.rpm
1.安装rsync
yum -y install wget perl
rpm -qa|grep rsync
这一步是避免使用系统自带的低版本rsync 2.x
如果有就执行
rpm -e rsync
wget http://download.slogra.com/rsync-3.0.7-1.el5.rf.i386.rpm 
rpm -ivh rsync-3.0.7-1.el5.rf.i386.rpm

2.配置rsync
mkdir /etc/rsyncd
touch /etc/rsyncd/rsyncd.conf
touch /etc/rsyncd/rsyncd.secrets
touch /etc/rsyncd/rsyncd.motd
chmod 600 /etc/rsyncd/rsyncd.secrets

说明:
mkdir /etc/rsyncd
在/etc目录下创建一个rsyncd的目录,我们用来存放rsyncd.conf和rsyncd.secrets等文件
touch /etc/rsyncd/rsyncd.conf
创建rsyncd.conf,这是rsync服务器的配置文件
touch /etc/rsyncd/rsyncd.secrets
创建rsyncd.secrets,这是用户密码文件
touch /etc/rsyncd/rsyncd.motd
创建rsyncd.motd,这是rsync欢迎界面
chmod 600 /etc/rsyncd/rsyncd.secrets
为了密码的安全性,我们把权限设为600

vi /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it #   allows crc checksumming etc.
service rsync
{
    disable = yes  修改为disable = no
    socket_type     = stream
    wait            = no
    user            = root
    server          = /usr/bin/rsync
    server_args     = --daemon
    log_on_failure  += USERID
}

vi /etc/rsyncd/rsyncd.conf
rsyncd.conf里的内容:
pid file = /var/run/rsyncd.pid
port = 873                #指定运行端口,默认是873,你可以自己指定
address = 192.168.10.8    #指定服务器IP地址
#uid = nobody
#gid = nobody
uid = root                #服务器端传输文件时,要用户和用户组来执行
gid = root
use chroot = yes          #用chroot,在传输文件之前,服务器守护程序在将chroot到文件系统中的目录中,这样做的好处是可能保护系统被安装漏洞侵袭的可能,缺点是需要超级用户权限.另外对符号链接文件,将会排除在外.
read only = yes           #只读选择,不让客户端上传文件到服务器上
#limit access to private LANs
#hosts allow=* #192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0
hosts allow = 192.168.10.18     #只允许这个主机访问
#hosts deny=*
max connections = 5            #最大连接数
motd file = /etc/rsyncd/rsyncd.motd   #自定义服务器信息,当用户登录时会看到这个信息
#This will give you a separate log file
log file = /var/log/rsync.log   #传输文件日志
#This will log every file transferred - up to 85,000+ per user, per sync
#transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[webbak]             #发布项
path = /root/webbak  #发布的路径
list=yes             #允许列出文件清单
ignore errors        #忽略IO错误
auth users = rocdk890  #用户账号
secrets file = /etc/rsyncd/rsyncd.secrets  #存放密码的地方
comment = webbak     #相当于是一种接口名字,等服务跑起来了客户端可以直接用这名字调用相关服务器的文件夹内容信息
#exclude =   beinan/  samba/   #无视这两个文件夹的内容,当然我这里没有启用

vi /etc/rsyncd/rsyncd.secrets
rocdk890:123456789

vi /etc/rsyncd/rsyncd.motd
+++++++++++++++++++++++++++
+ blog.slogra.com  rsync  +
+++++++++++++++++++++++++++

3.启动rsync
/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf
防火墙还要放过rsync的端口
我这里使用的rsync默认端口,也就是873
iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT
service iptables save
service iptables reload
这里服务端的搭建完成了.

4.客户端安装rsync
yum -y install wget perl
rpm -qa|grep rsync
rpm -e rsync
wget http://download.slogra.com/rsync-3.0.7-1.el5.rf.i386.rpm 
rpm -ivh rsync-3.0.7-1.el5.rf.i386.rpm
mkdir /etc/rsyncd
vi /etc/rsyncd/rsyncd.secrets
这里的rsyncd.secrets只需要加上密码就可以了
123456789
执行同步命令:
rsync -vzurtopg --progress --delete --password-file=/etc/rsyncd/rsync.secrets rocdk890@192.168.10.8::webbak /home/webbak
也可以编写成脚本
vi rsync-bak.sh
#!/bin/bash
rsync -vzurtopg --progress --delete --password-file=/etc/rsyncd/rsync.secrets rocdk890@192.168.10.8::webbak /home/webbak
chmod 700 rsync-bak.sh
然后让crontab定时执行rsync-bak.sh就可以达到自动备份的目的了
crontab -e 
10 2 * * * root /root/rsync-bak.sh (每天晚上2点10分进行同步)
好了,rsync的搭建就到此结束.
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-196.html

标签: centos 配置 安装 linux crontab 搭建 服务器 定时 备份 rsync

评论: