rsync远程同步的基本使用

实验一:通过rsync实现本机内文件或者文件夹的同步

实验步骤:

[root@yeyue ~]# mkdir ceshi    

[root@yeyue ~]# rsync -av 桌面/个人学习资料与报告/ ceshi/  --a代表归档模式,v显示同步信息

注:rsync  参数 原目录 目标目录 (原目录下带/则代表同步目录下的内容,不带/则代表同步目录本身)

[root@yeyue ~]# mkdir /1 

[root@yeyue ~]# touch /1/123.txt 

[root@yeyue ~]# rsync -a /boot/ /1/ --delete      --添加--delete命令后将会删除目标文件夹内有而源文件没有的内容

实验二:基于网络的rsync

1.rsync+ssh安全同步

下行(下载):rsync user@ip:原目录 本地目录

上行(上传):rsync 本地目录 user@ip:目标目录

[root@yeyue ~]# mkdir ceshi

[root@yeyue ~]# rsync -av root@192.168.13.221:/root/ ceshi/  

[root@yeyue ~]# ls ceshi/ 

anaconda-ks.cfg  install.log  install.log.syslog     

2.rsync+rsync同步

下行:rsync user@ip::共享名 本地目录

上行:rsync 本地目录 user@ip::共享名

实验环境:两台拥有rsync服务的服务器,其中一台配置rsync共享,一台测试

实验步骤:

1.创建可访问用户的用户名,密码存放文件

[root@dns01 ~]# cat /etc/user.db 

abc:123 

[root@dns01 ~]# chmod 600 /etc/user.db     --修改文件权限,确保其他用户没有权限,提高安全性

[root@dns01 ~]# ll /etc/user.db 

-rw------- 1 root root 8 06-25 20:03 /etc/user.db 

2.创建并修改主配置文件

[root@dns01 etc]# touch  rsyncd.conf   --在etc下创建主配置文件

[root@dns01 etc]# cat  rsyncd.conf 

uid = nobody 

gid = nobody 

use chroot = yes 

log file = /var/log/rsyncd.log 

pid file = /var/run/rsyncd.pid 

[gongxiang]--共享名 

        path = /usr/src --共享路径

        read only = yes --权限只读

        dont compress = *.zip *.bz2 *.tgz *.gz --不需要压缩的格式

        auth users = abc --授权登录账户

        secrets file = /etc/user.db--授权登录账户信息位置

[root@dns01 etc]# chkconfig rsync on 

[root@dns01 etc]# service xinetd restart 

[root@dns01 etc]# netstat -ln | grep :873--查看服务端口是否监听 

tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN 

[root@dns01 etc]# ls /usr/src/   --查看共享内有的文件

debug  kernels 

3.在客户端进行测试

[root@yeyue ~]# mkdir 123     --创建测试用文件夹

[root@yeyue ~]# rsync -avz abc@192.168.13.221::gongxiang /root/123/   

--同步192.168.13.221服务器内的共享   也可加参数--delete删除本地目录内源没有读文件

Password: --输入在服务器授权的登录用户abc相对应的密码

receiving incremental file list 

./ 

debug/ 

kernels/ 


sent 69 bytes  received 141 bytes  60.00 bytes/sec 

total size is 0  speedup is 0.00 

[root@yeyue ~]# ls 123/ 

debug  kernels 

容易出错的地方

# iptables -L --防火墙未关

# getenforce --selinux未关

# chmod 600 /etc/rsyncd_users.db --权限没有修改

# service xinetd restart --xinetd临时服务监控未启动

# netstat -ln | grep :873 --端口未监听

# /etc/xinetd.d/rsync --xinetd服务不可用

disable = yes

注:此实验可结合计划任务来达成定时备份的目的

实验三:通过安装源码包inotify,执行脚本,实现触发式同步

实验目的:实现源文件发生改变时,自动备份至其他备份服务器

实验环境:一台备份源服务器,一台测试用待同步服务器

实验步骤:

1.配置远程目标主机

开启nfs共享,创建备份目录

[root@dns01 etc]# mkdir -p /beifeng 

[root@dns01 etc]# cat /etc/exports 

/beifeng *(rw,no_root_squash)--保留root用户权限

[root@dns01 etc]# service portmap restart 

[root@dns01 etc]# chkconfig portmap on 

[root@dns01 etc]# service nfs restart 

[root@dns01 etc]# chkconfig nfs on


2.配置备份源服务器

安装源码包inotify (需要gcc,gcc-c++,make)

[root@yeyue ~]# yum -y install gcc*

[root@yeyue ~]# tar -zxf 桌面/inotify-tools-3.14.tar.gz -C /usr/src/  --将源码包解压到指定文件夹

[root@yeyue ~]# cd /usr/src/inotify-tools-3.14/   --进入解压后的文件夹 

[root@yeyue inotify-tools-3.14]# ./configure--执行

[root@yeyue inotify-tools-3.14]# make --编译 

[root@yeyue inotify-tools-3.14]# make install --安装

通过配置将远程待备份服务器的nfs挂在到本机位置

[root@yeyue ~]# mkdir /data/beifeng--创建源备份服务器挂载点

[root@yeyue ~]# cat /etc/fstab |tail -1 

192.168.13.221:/beifeng/data/beifengnfsdefaults0 0

[root@yeyue ~]# mount -a --自动挂在配置文件内有的挂在目录

[root@yeyue ~]# mount |tail -1 

192.168.13.221:/beifeng on /data/beifeng type nfs (rw,addr=192.168.13.221) 

--将远程备份服务器上的/beifeng挂在到本地的/data/beifeng上

[root@yeyue ~]# cat /usr/bin/in_rsync.sh       --编辑in_rsync.sh文件,让其执行内部脚本

#!/bin/bash 

/usr/local/bin/inotifywait -mrq -e modify,create,move,delete /var/www/html | while read DIR EVENT FILE      --当文件夹/var/www/html发生修改,创建,移动,删除变化时执行下面操作

do --要做de

/usr/bin/rsync -aHvz --delete /var/www/html/ /data/beifeng      --/var/www/html发生上述变化时进行本地同步,并且保留原有文件不变,删除目标文件夹里源内没有的文件 

done--结束

[root@yeyue ~]# chmod 700 /usr/bin/in_rsync.sh

[root@yeyue ~]# ll /usr/bin/in_rsync.sh 

-rwx------ 1 root root 182 6月  25 20:56 /usr/bin/in_rsync.sh

[root@yeyue ~]# echo "/usr/bin/in_rsync.sh" >> /etc/rc.local 

--将脚本配置追加到rc.local内,开机启动

测试:在源服务器内的/var/www/html/创建ceshi.html

[root@yeyue html]# sending incremental file list 

./ 

ceshi.html 


sent 84 bytes  received 34 bytes  236.00 bytes/sec 

total size is 0  speedup is 0.00 

[root@yeyue html]# ls /data/beifeng/ --查看rsync本地同步结果

ceshi.html 

进入远程备份服务器查看结果

[root@dns01 /]# ls /beifeng/ 

ceshi.html-- 成功

实验总结:通过上述实验,使用插件inotify-tools执行了脚本,在源目录内的文件发生变化时自动同步到远程服务器在本地的挂载点,实现了远程触发备份


NTP网络时间配置与测试

1.安装NTP服务

[root@yeyue ~]# yum -y install ntp

2.修改主配置文件


10  restrict 192.168.13.0 mask 255.255.255.0 nomodify   --指定192.168.13.0网段用户可同步服务器时间 

 22 server 0.centos.pool.ntp.org iburst 

 23 server 1.centos.pool.ntp.org iburst 

 24 server 2.centos.pool.ntp.org iburst 

 25 server 127.127.1.0--服务器同步时间锁定本机硬件bios,直接应答客户机请求。

测试:

服务器时间

[root@yeyue ~]# date 

2014年 06月 25日 星期三 21:33:38 CST

本地时间

[root@dns01 /]# date 

2014年 03月 23日 星期日 16:45:05 CST

[root@dns01 /]# ntpdate 192.168.13.1 

25 Jun 21:39:26 ntpdate[6934]: step time server 192.168.13.1 offset 8138890.328443 sec 

[root@dns01 /]# date 

2014年 06月 25日 星期三 21:39:31 CST 

[root@dns01 /]# hwclock --systohc     --将本地时间锁定到硬件BIOS