主服务器:192.168.0.220 (CentOS 4.4)
从服务器:192.168.0.248 (CentOS 5)
============================== 1> 在两台主机上分别安装rsync ======================
默认一般都是安装了的
1 2[root@office ~]# rpm -qa|grep rsync rsync-2.6.3-1
如果没有安装,使用yum install rsync来进行安装即可; 正常情况很快就安装完毕,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文件排除在外;
1 2 3 4[root@office ~]# cd /etc [root@office ~]# mkdir rsyncd [root@office ~]# cd rsyncd [root@office ~]# vi rsyncd.conf
写入(保证文件中每行没有空格):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41pid file = /var/run/rsyncd.pid port = 873 address = 192.168.0.220 #uid = nobody #gid = nobody uid = root gid = root use chroot = yes read only = yes #limit access to private LANs #设置可访问的主机:如果多个ip则用空格隔开:192.168.0.3 192.168.0.4 192.168.0.5或者设置区间 192.168.0.3/5 hosts allow=192.168.0.0/24 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 #方括号中设置模块名 [linuxsirhome] #要同步服务器的目录路径 path = /backup list=yes ignore errors #auth users是必须在服务器上存在的真实的系统用户,如果你想用多个用户,那就以,号隔开;比如 auth users = ljzhou,rsyncsir auth users = ljzhou #从服务器访问需要的密码文件 secrets file = /etc/rsyncd/rsyncd.secrets comment = linuxsir tmp #设置不同步的目录或文件用空格隔开 exclude = test/ test.php
b> 创建修改密码文件rsyncd.secrets
1 2[root@office ~]# cd /etc/rsyncd [root@office ~]# vi rsyncd.secrets
写入: ljzhou:123456 退出保存。修改权限密码文件的权限:
1[root@office ~]# chmod 600 rsyncd.secrets
c> 创建修改rsync.motd文件
rsyncd.motd是定义rysnc 服务器信息的,也就是用户登录信息。比如让用户知道这个服务器是谁提供的等;类似ftp服务器登录时,我们所看到的 linuxsir.org ftp ……。 当然这在全局定义变量时,并不是必须的,你可以用#号注掉,或删除;如:
1[root@office ~]# vi rsyncd.motd
写入: welcome!
============================== 3> 启动rsync服务==============================
1[root@office ~]# /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
1
============================== 4> 主服务器已经配置好rsync!下面我们设置从服务器============
从服务器只需安装rsync即可,然后运行:
1[root@devel ~]# /usr/bin/rsync -vzrtopg --progress ljzhou@192.168.0.220::linuxsirhome /tmp
#因为没有指定密码文件,所以需要手动输入主服务器上的设定的密码输入密码:123456 ljzhou是指定密码文件中的用户名 ::linuxsirhome 表示在rsyncd.conf中设置的模块名 /tmp是从服务器目录(192.168.0.248/tmp) 到此为止,rsync的两台主机之间(192.168.0.220/tmp和192.168.0.248/tmp)的rsync同步已经配置完毕,只要在从服务器执行上述命令输入密码即可同步。
============================== 5> 设置主从服务器定定时自动同步==============================
自动同步要用到从服务器上的cron服务,关于cron的介绍请参考:linux定时执行系统我们在从服务器即192.168.0.248的/tmp目录下创建两个rsync.sh文件和rsync.secrets文件。 rsync.sh文件是cron要执行的脚本文件。 rsync.secrets是保存主服务器密码的文件。
a> 创建rsync.sh文件
1 2[root@devel ~]# cd /tmp [root@devel ~]# vi rsync.sh
写入: /usr/bin/rsync -vzrtopg -progress ljzhou@192.168.0.220::linuxsirhome /tmp -password-file=/tmp/rsync.secrets
退出保存。
b> 创建rsync.secrets密码文件
1[root@devel ~]# vi rsync.secrets
写入: 123456
退出保存并修改权限:
1[root@devel ~]# chmod 600 rsync.secrets
c> 配置cron服务
1[root@devel ~]# crontab -e
添加一行: */1 * * * * /web/www/rsync.sh //即每分钟同步一次退出保存,rsync.sh 这个文件放置于一个妥善保存的地方,不要泄露密码。
设置完毕,以后每隔一分钟即会把主服务器/tmp目录更新至从服务器/tmp