centos搭建rsync进行定时备份
最近看到很多朋友因没有及时备份网站数据,造成数据大量丢失,今天给大家介绍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的搭建就到此结束.
评论: