Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4015
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-18 17:29
文章分类
文章存档

2013年(3)

我的朋友
最近访客

分类: 其他平台

2013-09-05 13:54:30

rsync+inotify搭建实时同步文件

rsync是linux、UNIX系统下的文件同步数据传输工具,他采用rsync算法使一个客户机和远程文件服务器之间的文件同步。通过 rsync可以将同一个服务器的数据从一个分区备份到另一个分区,也可以将本地系统的数据通过网络传输方式备份到任何一个远程主机上;rsync可以在中 断之后恢复复制,rsync只传输源文件和目标文件不一致的部分,rsync可以执行完整备份或增量备份。

inotify 是一种强大的、细粒度的、异步的文件系统事件监控机制,linux内核从2.6.13版本起,加入了对inotify的支持。通过inotify可以监控 文件系统中添加、删除、修改、移动等各种细微事件,利用这个内核接口,第三方软件可以监控文件系统下文件的各种变化情况,inotify-tools就是 这样的一个第三方软件。

系统环境

系统:Centos 5.4

A:192.168.59.128  server

B:192.168.59.129  client

client 向 server 传输数据。

Server配置:

用YUM方式安装rsync

yum -y install rsync

# mkdir -p /etc/rsyncd  创建主目录

# touch /etc/rsyncd/rsyncd.conf 创建rsync主配置文件

# touch /etc/rsyncd/rsyncd.secrets  创建密码文件

# chmod 600 /etc/rsyncd/rsyncd.secrets  修改文件属性为600

# vi /etc/rsyncd/rsyncd.secrets  创建用户名和密码(jeffstan:123456)

# touch /etc/rsyncd/rsyncd.motd  创建说明文档

# vi /etc/rsyncd/rsyncd.conf  修改主配置文件

pid file = /var/run/rsyncd.pid

port = 873

address = 192.168.59.128

uid =root

gid = root

use chroot = yes

read only = no

hosts allow = *

write only = no

strict modes = yes

motd file = /etc/rsyncd/rsyncd.motd

timeout = 300

transfer logging = yes

log file = /var/log/rsync.log

[ temp ]

      path = /tmp/temp

      list = false

      ignore errors

      auth users = jeffstan

      secrets file = /etc/rsyncd/rsyncd.secrets

      exclude = error_log httpd.pid

# /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf   启动守护进程

# echo "/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf" >>/etc/rc.local   将启动进程加入到开机自动启动中

配置inotify client配置:

安装inotify需要linux内核的支持,再安装inotify-tools前需确认linux系统内核是否是2.6.13以上的版本。

安装inotify-tools-3.14.tar.gz

# tar -zxvf inotify-tools-3.14.tar.gz  解压

# ./configure  

# make

# make install

查看是否有安装

# ll /usr/local/bin/inotifywa*

-rwxr-xr-x 1 root root 47104 07-31 13:45 /usr/local/bin/inotifywait

-rwxr-xr-x 1 root root 43418 07-31 13:45 /usr/local/bin/inotifywatch

# mkdir -p /etc/rsyncd

# touch /etc/rsyncd/rsyncd.password

# echo "1234567" > /etc/rsyncd/rsyncd.password

# chmod 600 /etc/rsyncd/rsyncd.password

# touch /etc/rsyncd/rsync.log

# mkdir /qt  脚本中有定义

创建脚本

# vi /inotify.sh

#!/bin/bash

host=192.168.92.128

src=/qt/

dst=webqq

user=xiaolu

/usr/local/bin/inotifywait -mrq --timefmt '%d%m%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | while read files

      do

              /usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd/rsyncd.password $src $user@$host::$dst

      echo "${files} was rsyncd" >>/etc/rsyncd/rsync.log 2>&1

done

# chmod 755 inotify.sh  设置脚本权限

# /inotify.sh & 运行脚本 至后台

# echo "/inotify.sh & " >> /etc/rc.local  加入开机自动启动



  • 本稿件为独家原创稿件,版权所有,引用或转载请注明出处。
  • 文章出处:
阅读(206) | 评论(0) | 转发(0) |
0

上一篇:Linux系统信息查看命令大全

下一篇:没有了

给主人留下些什么吧!~~