<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gjw_apparitor 博客 &#187; Backup</title>
	<atom:link href="http://www.apparitor.info/category/backup/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.apparitor.info</link>
	<description>孤独是一种态度</description>
	<lastBuildDate>Wed, 16 May 2012 07:36:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>RSYNC+inotify 实现时时同步</title>
		<link>http://www.apparitor.info/2011/04/07/rsyncinotify-%e5%ae%9e%e7%8e%b0%e6%97%b6%e6%97%b6%e5%90%8c%e6%ad%a5/</link>
		<comments>http://www.apparitor.info/2011/04/07/rsyncinotify-%e5%ae%9e%e7%8e%b0%e6%97%b6%e6%97%b6%e5%90%8c%e6%ad%a5/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 08:09:41 +0000</pubDate>
		<dc:creator>gjw_apparitor</dc:creator>
				<category><![CDATA[Backup]]></category>
		<category><![CDATA[inotify]]></category>

		<guid isPermaLink="false">http://www.apparitor.info/?p=303</guid>
		<description><![CDATA[测试系统:CentOS5.3 inotify 简介 inotify 是文件系统事件监控机制,作为 dnotify 的有效替代。dnotify 是较早内核支持的文件监 控机制。Inotify 是一种强大的、细粒度的、异步的机制,它满足各种各样的文件监控需要,不仅限于 安全和性能。 RSYNC 简介 Rsync(remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文 件。Rsync 使用所谓的“Rsync 算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两 个文件的不同部分,而不是每次都整份传送,因此速度相当快。 RSYNC 特点 1.可以镜像保存整个目录树和文件系统; 2.可以很容易做到保持原来文件的权限、时间、软硬链接等; 3.无须特殊权限即可安装; 4.优化的流程,文件传输效率高; 5.可以使用 rsh、ssh 等方式来传输文件,当然也可以通过直接的 socket 连接; 6.支持匿名传输。 一、架设 RSYNC server 端 1. 建立 rsync 目录 $ Yum install rsync-2.6.8-3.1 $ mkdir /etc/rsyncd $ touch /etc/rsyncd/rsyncd.conf $ touch /etc/rsyncd/rsyncd.secrets $]]></description>
			<content:encoded><![CDATA[<p>测试系统:CentOS5.3<br />
inotify 简介<br />
inotify 是文件系统事件监控机制,作为 dnotify 的有效替代。dnotify 是较早内核支持的文件监<br />
控机制。Inotify 是一种强大的、细粒度的、异步的机制,它满足各种各样的文件监控需要,不仅限于<br />
安全和性能。<br />
RSYNC 简介<br />
Rsync(remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文<br />
件。Rsync 使用所谓的“Rsync 算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两<br />
个文件的不同部分,而不是每次都整份传送,因此速度相当快。</p>
<p>RSYNC 特点<br />
1.可以镜像保存整个目录树和文件系统;<br />
2.可以很容易做到保持原来文件的权限、时间、软硬链接等;<br />
3.无须特殊权限即可安装;<br />
4.优化的流程,文件传输效率高;<br />
5.可以使用 rsh、ssh 等方式来传输文件,当然也可以通过直接的 socket 连接;<br />
6.支持匿名传输。<br />
<span id="more-303"></span><br />
一、架设 RSYNC server 端<br />
1. 建立 rsync 目录</p>
<pre>$ Yum install rsync-2.6.8-3.1
$ mkdir /etc/rsyncd
$ touch /etc/rsyncd/rsyncd.conf
$ touch /etc/rsyncd/rsyncd.secrets
$ chmod 600 /etc/rsyncd/rsyncd.secrets</pre>
<p>2. 建立 rsync 目录</p>
<pre>$ vi /etc/rsyncd/rsyncd.conf
pid file = /var/run/rsyncd.pid     #rsync 的进程号文件
port = 873                         #端口
address = 192.168.1.100            #服务器的 IP
uid = root                         #用户名默认是 nobody
gid = root                      #用户组
use chroot = yes                #允许 chroot,开启这个安全,需要用 root 用户
#read only = yes                  #只读。
hosts allow=192.168.1.0/255.255.255.0 10.0.0.0/255.255.255.0
hosts deny=*                          #访问控制
max connections = 5                   #客户端的最大连接数。
#motd file = /etc/rsyncd/rsyncd.motd #定义服务器显示的信息。
#LOG
log file = /var/log/rsync.log        #日志文件
transfer logging = yes                #传输文件日志。
log format = %t %a %m %f %b           #日志格式
syslog facility = local3
timeout = 300
[test_mod]                               #定义模块
path = /rsync_test                    #指定文件目录
list=yes                              #显示目录结构。
ignore errors                         #忽略 IO 错误
#auth users = test                     #认证用户,这个用户必须是服务器上的。
#secrets file = /etc/rsyncd/rsyncd.secrets    #密码文件。
read only = no                              #读写
comment = test home                         #注释
#exclude = beinan/ samba/                     #排除的目录,目录之间有空格。
注: 关于 auth users 是必须在服务器上存在的真实的系统用户,如果你想用多个用户,那就以,号隔开;比如 auth users = test , test1</pre>
<p>3. 设置用户名:密码</p>
<pre>Vi /etc/rsyncd/rsyncd.secrets
#用户名:密码
test:test</pre>
<p>4. 启动 RSYNC 服务端</p>
<pre>Rsync --daemon --config=/etc/rsyncd/rsyncd.conf</pre>
<p>5. 测试:客户端去服务端同步文件</p>
<pre>Rsync -avz --delete --progress –password-file=/etc/rsyncd/rsync.password</pre>
<p>test@192.168.1.100:: test_mod/ file<br />
File 是你客户端存放服务文件断的目录<br />
test_mod 是你 rsync server 设置的模块名。<br />
测试:从客户端推送文件到服务端。</p>
<pre>Rsync -avz --delete --progress --password-file=/etc/rsyncd/rsync.password file test@192.168.1.100::test_mod/</pre>
<p>File 是你客户端要同步给服务端的目录<br />
test_mod 是你 rsync server 设置的模块名。</p>
<p>二、在客户端安装 inotify 服务<br />
下载地址:http://inotify-tools.sourceforge.net/<br />
2.1 inotify 安装</p>
<pre>wget http://sourceforge.net/projects/inotify-tools/files/inotify- \
tools/3.13/inotify-tools-3.13.tar.gz/download
tar zxvf inotify-tools-3.13.tar.gz
cd inotify-tools-3.13
./configure
make
make install</pre>
<p>2.2 inotify 详解<br />
inotify 可以监视的文件系统事件包括:<br />
IN_ACCESS,即文件被访问<br />
IN_MODIFY,文件被 write<br />
IN_ATTRIB,文件属性被修改,如 chmod、chown、touch 等<br />
IN_CLOSE_WRITE,可写文件被 close<br />
IN_CLOSE_NOWRITE,不可写文件被 close<br />
IN_OPEN,文件被 open<br />
IN_MOVED_FROM,文件被移走,如 mv<br />
IN_MOVED_TO,文件被移来,如 mv、cp<br />
IN_CREATE,创建新文件<br />
IN_DELETE,文件被删除,如 rm<br />
IN_DELETE_SELF,自删除,即一个可执行文件在执行时删除自己<br />
IN_MOVE_SELF,自移动,即一个可执行文件在执行时移动自己<br />
IN_UNMOUNT,宿主文件系统被 umount<br />
IN_CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)<br />
IN_MOVE,文件被移动,等同于(IN_MOVED_FROM | IN_MOVED_TO)<br />
注:上面所说的文件也包括目录。</p>
<p>2.3 运行 inotify 设置监控目录<br />
/usr/local/bin/inotifywait -mrq &#8211;timefmt &#8216;%d/%m/%y %H:%M&#8217; &#8211;format &#8216;%T<br />
%w %e %f&#8217; -e delete,close_write,moved_to /rsync_test/<br />
&#8211;timefmt 时间的格式<br />
&#8211;format 输出的格式<br />
-m 保持一直监听<br />
-r 是递归查看目录<br />
-q 是打印出事件<br />
-e 监听的事件,详情请看(2.2 inotify 详解)<br />
当你往/rsync_test/目录里添加删除文件时。这个 shell 里就会有输出信息。</p>
<p>2.4 根据 inotify 的输出信息,运行 rsync 的脚本<br />
Vi rsync_inotifywait.sh</p>
<pre>#!/bin/bash
RSYNC_SERVER_IP=192.168.1.100
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T
%w %e %f' -e delete,close_write,moved_to /rsync_test/ | while read file
do
	echo ${file} &gt;&gt; /var/log/inotifywait.log
	RSYNC_FILE=`echo ${file} | awk '{print $3$5}'`
	RSYNC_DIRECTORY=`echo ${file} | awk '{print $3}'`
	state=`echo ${file} | awk '{print $4}'`

	case "${state}" in
		CREATE )
			echo "---------CREATE-----------"
			( rsync -avz --delete --progress --password-file=/etc/rsyncd/rsync.password ${RSYNC_FILE} test@${RSYNC_SERVER_IP}::test_mod/ ) &amp;
			echo "---------CREATE-----------"
		;;

		DELETE )
			echo "---------DELETE-----------"
			( rsync -avz --delete --progress --password-file=/etc/rsyncd/rsync.password ${RSYNC_DIRECTORY} test@${RSYNC_SERVER_IP}::test_mod/ ) &amp;
			echo "---------DELETE------------"
		;;

		CLOSE_WRITE,CLOSE )
			echo "---------CLOSE_WRITE--------"
			( rsync -avz --delete --progress --password-file=/etc/rsyncd/rsync.password ${RSYNC_FILE} test@${RSYNC_SERVER_IP}::test_mod/ ) &amp;
		echo "---------CLOSE_WRITE--------"
		;;

		MOVED_TO )
			echo "-------MOVED_TO----------"
			( rsync -avz --delete --progress --password-file=/etc/rsyncd/rsync.password ${RSYNC_FILE} test@${RSYNC_SERVER_IP}::test_mod/ ) &amp;
			echo "-------MOVED_TO---------"
		;;

		* )
			echo "-------NO UPDATE--------"
			echo "NO UPDATE"
			echo "-------NO UPDATE--------"
		;;
	esac
done
set +</pre>
<p>运行这个脚本后。他就会时时监控这个目录的变化。有变更就会把数据推到 rsync server 上。<br />
如果要同步多台 server 上请修改脚本。
<div style="margin-top: 15px; font-style: italic">
<p><strong>原创文章，转载请注明：</strong> 转载自<a href="http://www.apparitor.info/">gjw_apparitor 博客</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.apparitor.info/2011/04/07/rsyncinotify-%e5%ae%9e%e7%8e%b0%e6%97%b6%e6%97%b6%e5%90%8c%e6%ad%a5/">RSYNC+inotify 实现时时同步</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.apparitor.info/2011/04/07/rsyncinotify-%e5%ae%9e%e7%8e%b0%e6%97%b6%e6%97%b6%e5%90%8c%e6%ad%a5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>快速的压缩包合并</title>
		<link>http://www.apparitor.info/2011/03/31/%e5%bf%ab%e9%80%9f%e7%9a%84%e5%8e%8b%e7%bc%a9%e5%8c%85%e5%90%88%e5%b9%b6/</link>
		<comments>http://www.apparitor.info/2011/03/31/%e5%bf%ab%e9%80%9f%e7%9a%84%e5%8e%8b%e7%bc%a9%e5%8c%85%e5%90%88%e5%b9%b6/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 08:48:26 +0000</pubDate>
		<dc:creator>gjw_apparitor</dc:creator>
				<category><![CDATA[Backup]]></category>
		<category><![CDATA[backup]]></category>

		<guid isPermaLink="false">http://www.apparitor.info/?p=134</guid>
		<description><![CDATA[快速的压缩包合并 经常要合并日志，将前端的服务器上的日志合并到一起用于分析数据。为了加快传输速度每次传输都将前端的日志先gzip压缩，然后同步到日志服务器上，再将所有的日志解压整合到一个文件里，然后再压缩（最后一步压缩为了节省日志服务器的空间）。 日志少还可以，慢慢的日志越来越多每次合并需要很长时间。 新方法： 用cat输出压缩文件重定向到另一个gz文件里就可以合并。最后还可以解压出来，不丢任何数据。 cat *.gz >> all.gz 原创文章，转载请注明： 转载自gjw_apparitor 博客 本文链接地址: 快速的压缩包合并]]></description>
			<content:encoded><![CDATA[<p>快速的压缩包合并</p>
<p>经常要合并日志，将前端的服务器上的日志合并到一起用于分析数据。为了加快传输速度每次传输都将前端的日志先gzip压缩，然后同步到日志服务器上，再将所有的日志解压整合到一个文件里，然后再压缩（最后一步压缩为了节省日志服务器的空间）。</p>
<p>日志少还可以，慢慢的日志越来越多每次合并需要很长时间。</p>
<p>新方法：<br />
       用cat输出压缩文件重定向到另一个gz文件里就可以合并。最后还可以解压出来，不丢任何数据。</p>
<p>       cat *.gz >> all.gz
<div style="margin-top: 15px; font-style: italic">
<p><strong>原创文章，转载请注明：</strong> 转载自<a href="http://www.apparitor.info/">gjw_apparitor 博客</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.apparitor.info/2011/03/31/%e5%bf%ab%e9%80%9f%e7%9a%84%e5%8e%8b%e7%bc%a9%e5%8c%85%e5%90%88%e5%b9%b6/">快速的压缩包合并</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.apparitor.info/2011/03/31/%e5%bf%ab%e9%80%9f%e7%9a%84%e5%8e%8b%e7%bc%a9%e5%8c%85%e5%90%88%e5%b9%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

