主服务器:192.168.5.13_ubuntu
从服务器:192.168.5.11_centos
================== 1> 在两台主机上分别安装rsync===================
ubuntu安装如下:
编译安装:下载这个免费的软件
rsync.samba.org/或者samba.anu.edu.au/rsync
去官方网站下载最新的版本
解压缩进目录后执行 #./configure && make && make install
正常情况很快就安装完毕,rsync 服务器架设比较简单,可我们安装好rsync后,并没有发现配置文件以及rsync服务器启动程序,因为每个管理员可能对rsync 用途不一样,所以一般的发行版只是安装好软件就完事了,让管理员来根据自己的用途和方向来自己架设rsync服务器。
=====================2> rsync服务器的配置 =====================
在/etc目录下创建一个rsyncd的目录,我们用来存放rsyncd.conf,rsyncd.secrets和rsyncd.motd文件;
rsyncd.conf 是rsync服务器的主配置文件;
rsyncd.secrets是用户密码文件;
rsyncd.motd配置一些服务欢迎及说明信息;
a>创建修改 rsyncd.conf
rsyncd.conf 是rsync服务器主要配置文件,我们来个简单的示例;比如我们要备份服务器上的 /tmp/目录 ,在/tmp/ 中,我想把test目录和test.php文件排除在外;
zhouda# cd /etczhouda# mkdir rsyncdzhouda# cd rsyncdzhouda# vi rsyncd.conf
写入(保证文件中每行没有空格):
pid file = /var/run/rsyncd.pidport = 873address = 192.168.5.13#uid = nobody#gid = nobodyuid = rootgid = rootuse chroot = yesread only = yes#limit access to PRivate LANs#设置可访问的主机:如果多个ip则用空格隔开:192.168.5.3 192.168.5.4 192.168.5.5或者设置区间 192.168.5.3/5hosts allow=192.168.5.11 192.168.5.14hosts deny=*max connections = 5motd file = /etc/rsyncd/rsyncd.motd#This will give you a separate log filelog file = /var/log/rsync.log#This will log every file transferred - up to 85,000+ per user, per synctransfer logging = yeslog format = %t %a %m %f %bsyslog facility = local3timeout = 300#方括号中设置模块名[linuxsirhome]#要同步服务器的目录路径path = /www/list=yesignore errors#auth users是必须在服务器上存在的真实的系统用户,如果你想用多个用户,那就以,号隔开;比如 auth users = roger,linuxsirauth users = roger#从服务器访问需要的密码文件secrets file = /etc/rsyncd/rsyncd.secretscomment = linuxsir tmp#设置不同步的目录或文件用空格隔开exclude = test/ test.php
b> 创建修改密码文件rsyncd.secrets
写入:
退出保存。
修改权限密码文件的权限:
c> 创建修改rsync.motd文件
rsyncd.motd是定义rysnc 服务器信息的,也就是用户登录信息。比如让用户知道这个服务器是谁提供的等;类似ftp服务器登录时,我们所看到的 linuxsir.org ftp……。 当然这在全局定义变量时,并不是必须的,你可以用#号注掉,或删除;如:
写入:
===================== 3> 启动rsync服务=======================
============ 4> 主服务器已经配置好rsync!下面我们设置从服务器============
从服务器只需安装rsync即可,如果没有安装可以yum install rsync 然后运行:
#因为没有指定密码文件,所以需要手动输入主服务器上的设定的密码
输入密码:roger
roger是指定密码文件中的用户名
::linuxsirhome 表示在rsyncd.conf中设置的模块名
/tmp是从服务器目录(192.168.5.11/tmp)
到此为止,rsync的两台主机之间(192.168.5.11/tmp和192.168.5.14/tmp)的rsync同步已经配置完毕,只要在从服务器执行上述命令输入密码即可同步。
注:下面这个命令行中-vzrtopg里的v是verbose,
z是压缩传输,
r是recursive,
topg都是保持文件原有属性如属主、时间的参数。
u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器的时钟的同步。
--progress是指显示出详细的进度情况,
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。后面的roger@192.168.5.13::linuxsirhome中,之后的linuxsirhome是模块名,也就是在/etc/rsyncd /rsyncd.conf中自定义的名称,roger是指定模块中指定的可以同步的用户名。最后的/root/www是备份到本地的目录名。在这里面,还可以用-e ssh的参数建立起加密的连接。
可以用–passWord-file=/root/rsync.pass来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。
zhouda#/usr/bin/rsync-vzrtopg --progress --delete --password-file=/root/rsync.pass roger@192.168.5.13::linuxsirhome/root/www
==================5> 设置主从服务器定定时自动同步==================
自动同步要用到从服务器上的crond服务,关于crond的介绍请参考:linux定时执行系统
我们在从服务器即192.168.5.11的/root/www目录下创建两个rsync.sh文件和rsync.pass文件。
rsync.sh文件是crond要执行的脚本文件。
rsync.pass是保存主服务器密码的文件。
a>创建rsync.sh文件
写入:
退出保存。
b> 创建rsync.pass密码文件
写入:
退出保存并修改权限:
c> 配置crond服务
添加一行:
*/1 * * * * /root/www/rsync.sh //即每分钟同步一次
退出保存。
设置完毕,首先自己也手工执行下./rsync.sh,看看是否能正常运行.
以后每隔一分钟即会把主服务器/www目录更新至从服务器/root/www.
具体参数:
新闻热点
疑难解答
图片精选