快速业务通道

linux下配置rsync服务器和实时同步

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-17
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 安装:rpm –ivh rsync-XXXXXX.RPM 也可以用YUM 启动rsync要装xinetd,它是靠它启动的,端口是873 设定: /etc/xinetd.d/rsync
#vi /etc/xinetd.d/rsync
#default: off
#de.ion:The rsync server is a good addition to am ftp server,as it
# allows crc checksumming etc.
service rsync
{
disable = no
把它改为no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure = USERID
}
配置文件解释: uid=nobody gid=nobody 运行rsync用户和组 max connections=4 最大连接数 拥有帝国一切,皆有可能。欢迎访问phome.net use chroot=no log file=/var/log/rsyncd.log pid file=/var/run/rsyncd.pid lock file=/var/run/rsyncd.lock #auth users=root secrets file=/etc/rsyncd.secrets 要定义这个文件,里面定义第一个模块的用户名和密码,格式:test:password,权限是600 [test] 模块名 path=/test 这个目录nobody可读写
模块所定义的路径 comment = test
备注 ignore errors read .ly = yes 如果出现模块只能读的错误,就把这里改成NO list = no auth users = test
定义同步用户 secrets file = /etc/swd/www.pass 拥有帝国一切,皆有可能。欢迎访问phome.net 定义用户和密码,权限是600 我的同步脚本:#!/bin/bash

#set -x

rsync -uqpzrt --delete --password-file=/etc/swd/rsync.secrets test@192.168.2.11::test /test
#在客户端用rsync同步的话,要在服务端定义此模块的用户名和密码,然后在客户端定义此文件,此文件只要定义密码就行,和服务端的密码一致.

if [ $? -eq 0 ];then

echo "$(date "%Y-%m-%d %H:%M:%S") picture rsync success" >> /var/log/rsync.log

else

echo "$(date "%Y-%m-%d %H:%M:%S") picture rsync error" >> /var/log/rsync.log

fi

chown -R daemon:daemon /test
用rsync同步其实跟scp差不多,可以从服务端复制到客户端,也可以从客户端复制到服务端
运行参数解释: -u 更新数据 -h , --help 显示rsync求助资讯
--version
顯示rsync 拥有帝国一切,皆有可能。欢迎访问phome.net版本
-v , --verbose
复杂的输出信息
-q , --quiet
安静模式,几乎没有讯息产生, 常用在以cron执行rsync
-I, --ignore-times
通常rsync为了加快速度会忽略同样档案大小且同样,同样存取时间点的档案
可以通过此参数开关此快速检查.
--size-only rsync
只检查档案大小是否改变,不管时间存取点是否改变
通常用在mirror, 且对方时间不太正确时
-c, --checksum
在传送之前透过128bitmd4检查码来检查所有要传送的档案(会托满速度);
-a, --archive archive mode
权限保存模式,相当于 -rlptgoD 拥有帝国一切,皆有可能。欢迎访问phome.net参数.
很快速的保存几乎所有的权限设定,除了硬式连接(透过-H设定).
-r, --recursive
复制所有下面的资料(透过)
-R, --relative
使用相对路径
: rsync foo/bar/foo.c remote:/tmp/ 在远端产生/tmp/foo.c档案
rsync -R foo/bar/foo.c remote:/tmp/
在远端产生/tmp/foo/bar/foo.c 档案
-R, --relative
不使用相对路径
-b, --backup
目的地端先前已经存在的档案在传输或删除前会被备份
--backup-dir=DIR
设定备份的资料夹
--suffix=SUFFIX
指定备份的档案名称字尾形式(预设为~)
-K, --keep-dirlinks
接收方将连接到资料夹的档案视为资料夹处理 拥有帝国一切,皆有可能。欢迎访问phome.netinotify 通过提供一个更优雅的 API 解决了这些问题,该 API 使用最少的文件描述符,并确保更细粒度的监控.与 inotify 的通信是通过设备节点提供的.基于以上原因,对于监控 Linux 2.6 平台上的文件,inotify 是您最明智的选择.

引用链接:
http://www-128.ibm.com/developerworks/cn/linux/l-inotify.html#N10081

需求:对需要同步的目录进行监控,一有变化就同步
安装步骤:
1.确认你的内核支持inotify,如果不支持对内核打补丁,一般情况内核在 2.6.3以上的都支持的.你可以确认下运行

[root@test ~]# ls -l /proc/sys/fs/inotify/
total 0
-rw-r--r-- 1 root root 0 Feb 17 00:02 max_queued_events
-rw-r--r-- 1 root root 0 Feb 17 00:02 max_user_instances
-rw-r--r-- 1 root root 0 Feb 17 00:02 max_user_watches
如果没有的话,就要编译内核选上inotify

安装
./configure --prefix=PATH&&make&&make install


自己同步的脚本:
/opt/inotify/bin/inotifywait -mrq -e create,move,delete,modify /test/www | while read file;do
rsync -uahqzt --delete --password-file=/etc/swd/rsync.secrets /test/www/ www@192.168.2.3::www
doneinotifywait的参数解释
-m 是保持一直监听
-r 是递归查看目录
-q 是打印出事件~
-e create,move,delete,modify
监听 创建 移动 删除 写入 事件

[root@test swd]# ./wwwrsync.sh &



拥有帝国一切,皆有可能。欢迎访问phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号