Linux学习之rsync远程同步


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



你可能感兴趣的:(rsync远程同步)