rsync远程同步服务
inotify-tools实现实时同步
NTP网络时间服务
一:rsync客户端 <==> sshd 服务器
1. rsync 同步的基本操作
使用格式:rsync 源文档 目标文档
rsync常用选项
-a:归档模式,相当于-rlptgoD
-v:显示同步过程详细信息
-z:传输过程中启用压缩
-H:保留硬连接文件
-A:保留文件的ACL属性信息
--delete:删除目标有而源没有的文件
2. rsync + sshd 服务器的 上传、下载
下行:rsync user@host:源目录 本地目录
上行:rsync 本地目录 user@host:目标目录
1)将远程主机的 /boot/ 目录备份到本地
[root@pc205 ~]# mkdir /fromssh
[root@pc205 ~]# rsync -az [email protected]:/boot/ /fromssh/
[email protected]‘s password: //验证口令
2)将本地的 /etc 目录备份到远程主机
[root@pc205 ~]# rsync -az /etc [email protected]:/opt/
[email protected]'s password: //验证口令
二:rsync客户端 <== rsync 服务器
下行:rsync user@host::共享名 本地目录
上行:rsync 本地目录 user@host::共享名
1. 发布 rsync --daemon 共享
1)建立同步账号文件(匿名则不需要)
[root@svr5 ~]# vim /etc/rsyncd_users.db
ruser:pwd123 //每行一条用户记录
othername:123456
……
[root@svr5 ~]# chmod 600 /etc/rsyncd_users.db //严格权限,否则同步会失败
2)建立 /etc/rsyncd.conf 共享设置
[root@svr5 ~]# vim /etc/rsyncd.conf
.. ..
[tools]
path = /usr/src
comment = Rsync Share Test
read only = yes
dont compress = *.gz *.bz2 *.tgz *.zip
auth users = ruser //允许谁访问
secrets file = /etc/rsyncd_users.db //指定账号文件的路径
3)启用 rsync --daemon 服务
[root@svr5 ~]# yum -y install xinetd
[root@svr5 ~]# chkconfig rsync on
[root@svr5 ~]# chkconfig xinetd on
[root@svr5 ~]# service xinetd restart
2. rsync + rsync 服务器的下载测试
[root@pc205 ~]# rsync [email protected]::tools //浏览共享
Password: //验证口令
drwxr-xr-x 4096 2009/10/01 22:58:39 debug
drwxr-xr-x 4096 2009/10/01 22:58:39 kernels
.. ..
[root@pc205 ~]# mkdir /root/mysrc
[root@pc205 ~]# rsync -avz --delete [email protected]::tools/ /root/mysrc/ //下行同步,删除多余文件
三:网站目录镜像同步
svr5 《==》 pc205
1. 在svr5上配置rsync共享
1)共享的文件夹路径:/var/www/html/
2)共享名为webroot
3)许可的用户名是wuser,密码Taren1
2. 在pc205上执行同步
1)本地目标文件夹:/var/www/html/
2)每2小时自动同步一次
服务器svr5上:
[root@svr5 ~]#vim /etc/rsyncd.conf
secrets file = /etc/rsync.udb
[webroot]
path = /var/www/html
comment = Test Web Directory.
auth users = wuser
[root@svr5 ~]# vim /etc/rsync.udb
wuser:Taren1
[root@svr5 ~]# chmod 600 /etc/rsync.udb
客户机pc205上:
[root@pc205 ~]# vim /root/pwd.txt
Taren1
[root@pc205 ~]# chmod 600 /root/pwd.txt
[root@pc205 ~]# crontab -e
0 */2 * * * rsync --password-file=/root/pwd.txt --delete -az [email protected]::webroot/ /var/www/html/
四:rsync 实时同步(inotify监控及触发)
1. 安装 inotify-tools 软件包
[root@svr5 ~]# tar zxf inotify-tools-3.13.tar.gz
[root@svr5 ~]# cd inotify-tools-3.13
[root@svr5 inotify-tools-3.13]# ./configure
.. ..
[root@svr5 ~]# make && make install
2. inotifywait 工具的触发验证
以监控 /opt 目录为例,当 /opt 目录下的文档有变动时,会立即给出相应提示
[root@svr5 ~]# 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@svr5 ~]# inotifywait -mrq -e modify,move,create,delete,attrib /opt \
| while read X Y Z ; do rsync -az --delete /opt/ /opt2 ; done
.. .. //对源目录做一些更改操作
[root@svr5 ~]# ls /opt2/
.. .. //查看实时同步结果
五:网站目录镜像实时同步(补充)
svr5 /var/www/html 《==》 pc205 /var/www/html
1. 在svr5上安装inotify-tools工具
2. 创建SSH密钥对(无密码),并部署到pc205上
[root@svr5 ~]# ssh-keygen -t rsa
[root@svr5 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
3. 在svr5上启用rsync+inotify同步
[root@svr5 ~]# inotifywait -mrq -e modify,move,create,delete,attrib /var/www/html/ | rsync -az --delete /var/www/html/ [email protected]:/var/www/html
六:NTP时间同步服务
1. 调整 ntpd 服务配置,启动服务
[root@svr5 ~]# vim /etc/ntp.conf
restrict default kod nomodify notrap nopeer noquery
restrict 192.168.4.0 mask 255.255.255.0 nomodify notrap //仅允许指定的网段访问
.. ..
server 127.127.1.0 //以本机硬件时钟作为源
[root@svr5 ~]# service ntpd restart //启动 ntpd 服务(监听 UDP 123端口)
[root@svr5 ~]# chkconfig ntpd on
2. 在客户机测试时间同步
[root@pc205 ~]# date -s '2001-09-11 12:00' //设置一个错误的系统时间
2001年 09月 11日 星期二 12:00:02 CST
[root@pc205 ~]# ntpdate 192.168.4.5 //测试NTP同步
4 Sep 15:39:55 ntpdate[15732]: step time server 192.168.4.5 offset 21483522.484714 sec
[root@pc205 ~]# date //查看时间(与NTP服务器端保持一致)
2013年 09月 04日 星期三 15:40:00 CST
3. 配置NTP客户机
[root@pc205 ~]# vim /etc/ntp.conf
.. ..
server 192.168.4.5 //将本机作为192.168.4.5的客户端
[root@pc205 ~]# service ntpd restart ; chkconfig ntpd on