利用rsync实现文件同步

来源:互联网 发布:华创证券交易软件 编辑:程序博客网 时间:2024/04/30 19:53

For Linux


一、在服务器上和客户端上安装

# tar -xzpvf rsync-3.0.6.tar.gz
# cd rsync-3.0.6/
# ./configure --prefix=/usr/local/rsync
# make
# make install

 

二、服务器配置:
文件格式,都建立在/etc/目录下

1、rsyncd.conf:

#先定义整体变量
secrets file = /etc/rsyncd.secrets
motd file = /etc/rsyncd.motd
read only = yes
list = yes
uid = 0
gid = 0
hosts allow = 192.168.100.90 #哪些电脑可以访问rsync服务
hosts deny = 192.168.100.0/24 #哪些电脑不可以访问rsync服务
max connections = 2
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
#再定义要rsync目录
[terry]
comment = Terry 's directory from 192.168.100.21
path = /home/terry
auth users = terry,rsync
[test]
comment = test rsync

path = /home/test


2、rsyncd.secrets:
terry:12345
rsync:abcde

 

3、rsyncd.motd
  Welcome to use the rsync services!


4、 vi /etc/xinetd.d/rsync
  建立一个名为/etc/xinetd.d/rsync文件,输入以下内容:
  service rsync
  {
    disable = no
    socket_type  = stream
    wait      = no
    user      = root
    server     = /usr/local/rsync/bin/rsync
    server_args  = --daemon
    log_on_failure += USERID
  }
  保存后,就可以运行rsync服务了。
 
5、启动服务
   # /etc/rc.d/init.d/xinetd reload

6、运行
   # rsync --daemon


三、在客户端和服务器都建相同同步文件夹(给文件夹加权限 chmod 755 目录)

1、下载文件 
# /usr/local/rsync/bin/rsync -vzrtopg --progress --update --password-file=/etc/rsyncd.secrets root@192.168.0.211::test /backup/test/

2、上传文件
# /usr/local/rsync/bin/rsync -vzrtopg --progress --update /backup/test/  root@192.168.0.211::test


2、客户端建立以下脚本,自动同步:
  # vi AtoB.sh
       ##下载文件
      /usr/local/rsync/bin/rsync -vzrtopg --progress --update --password-file=/etc/rsyncd.secrets root@192.168.0.111::test /backup/test/
      ##上传文件
      /usr/local/rsync/bin/rsync -vzrtopg --progress --update /backup/test/  root@192.168.0.111::test

  
  将这个脚本保存为AtoB.sh,并加上可执行属性:
  # chmod 755 /root/AtoB.sh
  然后,通过crontab设定,让这个脚本每30分钟运行一次。执行命令:
  # crontab -e
  输入以下一行:
  0,30 * * * * /root/AtoB.sh

 

For Win

1、在服务端和客户端安装好应用,

2、在win客户下
rsync -vzrtopg --progress --delete root@192.168.0.111::test ./bak