FreeBSD 研习课程讲义
Prev 使用Rsync作主机资料的备份 Next

【前言】
       Rsync目前由rsync.samba.org维护,rsync 使用 "rsync 演算法", 使 local 和远端二部主机之间的档案快速达到资
       料同步,由於它主要是传送"异动"部份,而非每次都整份传送所以同步速度相当地快,且Rsync可搭配rsh、ssh甚至使
       用 daemon模式。 当一台主机跑 rsync daemon 模式,即为 rsync Server(也就是 Backup Server),备份主机会开启
       一个 873port的服务通道,等待 rsync client连接,连接时 rsync Server 会检查密码是否正确若通过密码查核,便
       开始进行档案传输.第一次连通会把整份档案传输一次,因此会比较慢,下一次就只传送资料之间异动的部份。
       
【作业环境】
       FreeBSD 4-9 RELEASE (rsync server、client)
       rsync-2.6.2
       
【安装及设定】

               Rsync Server设定
         
       Setp1.安装rsync

       #cd /usr/ports/net/rsync            //切换到安装路径
       #make install clean                 //安装并清除安装过程中不必要的档案
       
       Setp2.规划建立备份目录区

       #mkdir /media/backup/web            //自己建立一个备份目录(owner及group需配合web module设定)
       
       Setp3.设定rsyncd.conf

       #vi /usr/local/etc/rsyncd.conf      //修改rsyncd.conf内容如下
       
       ###backup config###                                                //注解
       [web]                                                              //module name
       comment =                                                          //说明
       path = /media/backup/web                                           //存放备份资料的目录
       auth users = waylon                                                //认证帐号(也就是等一下要设在rsyncd.secrets的帐号)
       uid = root                                                         //以uid root来启动rsync server 
       gid = wheel                                                        //以gid wheel来启动rsync server
       secrets file = /usr/local/etc/rsyncd.secrets                       //密码档存放路径
       read only = no 
       dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz //不要对列出附档名之档案做压
                                                                            缩,非必要,可以加入也可以不加入。

       ※若要同时有二个以上rsync client要备份到rsync server则依此module设定自行增加即可
       ※不要使用uid nobody、gid nogroup来启动rsync server,因为会读不到file。
       ※密码档存放路径、档案的名称可以任君喜好,爱放哪就放哪,只是自己要知道放在哪就好
       ※系统中不需有认证帐号这个user,也就是说系统里面不用adduser waylon这个user。
       
       Setp4.建立rsyncd.secrets

       #vi /usr/local/etc/rsyncd.secrets                                   //建立rsyncd.secrets档,加入内容如下
       waylon:abcdefgh                                                     //id:password(自行设定帐号、密码)
       #chmod 600 rsyncd.secrets                                           //权限改为600,不然别人会读取到密码
       
       Setp5.修改rc.conf
       
       # vi /etc/rc.conf增加以下内容rsyncd_enable="YES"                    //重开机会自动启动rsync
       
       Setp6.启动rsync服务

       #vi /usr/local/etc/rc.d/rsyncd.sh                                  //修改rsync.sh
       将预设值command_args="--daemon" 改为 command_args="-4 --daemon"        
       预设值是跑 IPv6改为 跑 IPv4 
       
       #/usr/local/etc/rc.d/rsyncd.sh start                               //启动rsync服务
      
       #sockstat |grep rsync                                              //确定rsync跑tcp4及打开873 port
          
           出 现
       root rsync 1201 4 tcp4 *:873
       root rsync 1201 3 dgram syslogd[68]:3
       
              
           Rsync Client设定

       Setp1.安装rsync
       
       #cd /usr/ports/net/rsync                                   //切换到安装路径
       #make install clean                                        //安装并清除安装过程中不必要的档案
       
       Setp2.建立rsyncd.secrets
       
       #vi rsyncd.secrets                                         //建立rsyncd.secrets内容如下(只需密码,不需帐号)
       abcdefgh                                                   //pwd(自行设定密码,但需与rsync server端的相同)
       #chmod 600 rsyncd.secrets                                  //权限记得改为600,不然别人会读取到密码
       
       Setp3.测试能否顺利同步资料
         
       执行格式大致如下(或man rsync)以下将执行分为三段来讲解
       Usage: rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
       #/usr/local/bin/rsync -CaP --delete --password-file=/usr/local/etc/rsyncd.secrets       
         /home waylon@192.168.168.19::web                        //执行此行指令测试能否顺利同步
      
       项目(叁数)                                                             说明
       rsync  [OPTION] 
       -a, --archive archive mode, equivalent to -rlptgoD                    档案模式
       -v, --verbose increase verbosity                                      观看过程
       -z, --compress compress file data                                     压缩资料
       -P equivalent to --partial -progress                                  显示程序进度%
       -C 
       -c 
       -u 
       --delete delete files that don't exist on the sending side            当source端删除A文件则destination
                                                                             端也把A文件删除保持二台机器资料的
                                                                             一致性。
       --password-file=FILE get password from FILE                           指定本机rsyncd.secrets的位置
      
       SRC [SRC] 
       /home                                                                 将本机目录/home备份到rsync server的备份
                                                                             目录/media/home/backup/web
      
       [USER@]HOST:DEST 
       waylon@192.168.168.19::web                                            以waylon身份登入到rsync server(192.168.168.19)
                                                                             上"web" module       
 /home与/home/的异同
       /home                        将会把/home目录下所有档案包括/home这个目录名称一起搬到rsync sever端
       /home/                       将会把/home目录下所有档案搬到rsync sever端,但「不」包括/home这个目录名称。

       Setp3.加入CRONTAB排程
       
       #crontab -e                                                //编辑排程(每天晚上10点15分执行rsync.sh)
       15 22 * * * /usr/local/bin/rsync -CaP --delete --password-file=/usr/local/etc/rsyncd.secrets          
       /home waylon@192.168.168.19::web
         
                      常见问题

       出现:
       rsync error: error in socket IO (code 10) at clientserver.c(93)
       请检查帐号密码。

【叁考资料】
http://linux.tnc.edu.tw/techdoc/rsync.htm 使用 rsync (全自动网路备份法)
http://rsync.samba.org/ rsync官方网站

Prev Home Next
使用FreeBSD的软体RAID(ccd) UP