rsync远程同步服务
inotify-tools实现实时同步
NTP网络时间服务
#########################################################
一:rsync远程同步服务
1.rsync 同步的基本操作
使用格式:rsync 源文档 目标文档
rsync常用选项
-a:归档模式,相当于-rlptgoD
-v:显示同步过程详细信息
-z:传输过程中启用压缩
-H:保留硬连接文件
-A:保留文件的ACL属性信息
--delete:删除目标有而源没有的文件
--checksum:根据校验和来决定是否要同步
2. rsync同步
(1)rsync服务器本地同步
创建同步目标目录
[root@redhat6 ~]# mkdir /test
[root@redhat6 ~]# rm -rf /test/*
[root@redhat6 ~]# ls /test
[root@redhat6 ~]# rsync -az /boot/ /test
[root@redhat6 ~]# ls /test
完全同步,删除多余的文件
[root@redhat6 ~]# touch /test/test.file
[root@redhat6 ~]# rsync -azvn /boot/ /test --delete
sending incremental file list
./
deleting test.file
........
//添加参数n是预执行结果,实际不执行
[root@redhat6 ~]# rsync -azv /boot/ /test --delete
sending incremental file list
./
deleting test.file
........
//去掉参数n同步删除,保持完全一样
注:在对文件夹进行同步时如果源文件夹后面不加/例如 :/boot 是将整个文件夹同步到目标文件夹,如果后面加上/boot/ 表示将该文件夹下的所有内容做同步
(2)rsync+ssh远程同步
下行:rsync user@host:源目录 本地目录
上行:rsync 本地目录 user@host:目标目录
准备一台rsync服务器(192.168.4.2)和一个远程同步端(192.168.4.3)
远程机建立测试目录
[root@redhat5 /]# mkdir /test
本地的 /etc 目录备份到远程主机
[root@redhat6 ~]# rsync -az /boot/[email protected]:/test
.........
[email protected]'s password: //输入远程机的用户名密码
[root@redhat5 /]# ls /test/
将远程主机的 /boot/ 目录备份到本地
[root@redhat5 /]# rm -rf /test/*
[root@redhat5 /]# rsync [email protected]:/boot/ /test
[email protected]'s password:
[root@redhat5 /]# ls /test/
(3)rsync客户端 <==> rsync 服务器
下行:rsync user@host::共享名 本地目录
上行:rsync 本地目录 user@host::共享名
1)在服务器端建立同步账号文件
[root@redhat6 ~]# vim /etc/rsyncd_users.db
ruser:pwd123
othername:123456 //远程用户验证需要的用户名和密码
2)修改rsync的配置文件,对同步的目录进行设置
[root@redhat6 ~]# vim /etc/rsyncd.conf
gid=nobody
use chroot=yes
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pin
[tools]
path=/usr/src //同步的目录
comment=Rsync Share Test
read only=yes
dont compress=*.gz *.bz2 *.tgz *.zip
auth users=ruser //添加本行就需要ruser用户认证,注释这两行表示匿名同步
secrets file=/etc/rsyncd_users.db //指明验证的文件
[root@redhat6 ~]# yum -y install xinetd
[root@redhat6 ~]# chkconfig rsync on //rsync服务是临时服务
[root@redhat6 ~]# service xinetd start
[root@redhat6 ~]# chkconfig xinetd on
在远程机上进行验证
查看服务器同步的共享名
[root@redhat5 /]# rsync 192.168.4.2::
tools RsyncShare Test
或
[root@redhat5 /]# rsync rsync://192.168.4.2
tools RsyncShare Test
查看共享名的内容列表
[root@redhat5 /]# [email protected]::tools
Password: //输入共享用户名的密码
或
[root@redhat5 /]# rsyncrsync://[email protected]/tools
Password:
远程同步
[root@redhat5 /]# rm -rf /test/*
[root@redhat5 /]# rsync -azrsync://[email protected]/tools/ /test
Password:
[root@redhat5 /]# ls /test/
debug kernels
#########################################################
二:rsync 实时同步(inotify监控及触发)
1.安装 inotify-tools 软件包
[root@redhat6 ~]# tar zxfinotify-tools-3.13.tar.gz
[root@redhat6 ~]# cd inotify-tools-3.13
[root@redhat6 inotify-tools-3.13]#./configure
.. ..
[root@redhat6 ~]# make && make install
2. inotifywait 工具的触发验证
以监控 /opt 目录为例,当 /opt 目录下的文档有变动时,会立即给出相应提示
[root@redhat6 ~]# inotifywait -mrq -e modify,move,create,delete,attrib /opt
.. ..
/opt/ CREATE,ISDIR tdir1
/opt/ CREATE file1.txt
/opt/ MODIFY file1.txt
/opt/ DELETE file1.txt
.. ..
3. 基于 inotifywait 与while循环 实现触发同步
[root@redhat6 ~]# inotifywait -mrq -e modify,move,create,delete,attrib /opt \
| while read X Y Z ; do rsync /opt /opt2 ; done
.. .. //对源目录做一些更改操作
[root@redhat6 ~]# ls /opt2/
.. .. //查看实时同步结果
#########################################################
三:NTP时间同步服务
1. 调整 ntpd 服务配置,启动服务
[root@redhat6 ~]# vim /etc/ntp.conf
restrict 192.168.4.0 mask 255.255.255.0nomodify notrap
//允许此网段将本服务器作为NTP服务器
server 127.127.1.0 //将本机作为NTP服务器
[root@redhat6 ~]# service ntpd restart
[root@redhat6 ~]# date
2014年 08月 26日 星期二 03:04:37 CST
2. 在客户机测试时间同步
[root@redhat5 /]# date
2007年 12月 12日 星期三 12:12:03 GMT
[root@redhat5 /]# ntpdate 192.168.4.2
[root@redhat5 /]# date
2014年 08月 25日 星期一 19:05:51 GMT
3.将NTP服务器地址添加到ntp.conf配置文件中自动同步
[root@redhat5 /]# vim /etc/ntp.conf
server 192.168.4.2
[root@redhat5 /]# service ntpd restart
4.本地时间同步
[root@redhat5 /]# hwclock //本地硬件时钟
2014年08月25日 星期一 19时08分29秒 -0.686272 seconds
[root@redhat5 /]# date 121212122007
2007年 12月 12日 星期三 12:12:00 GMT
[root@redhat5 /]# hwclock --hctosys //硬件时钟同步到系统时钟
[root@redhat5 /]# date
2014年 08月 25日 星期一 19:10:06 GMT
[root@redhat5 /]# hwclock --systohc //系统时钟同步到硬件时钟
[root@redhat5 /]# hwclock