<?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>Flib</title>
	<atom:link href="http://blog.flib.me/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.flib.me</link>
	<description>flex&#039;s library</description>
	<lastBuildDate>Tue, 27 Jul 2010 03:14:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>puppet的generate函数</title>
		<link>http://blog.flib.me/2010/07/08/puppet%e7%9a%84generate%e5%87%bd%e6%95%b0/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=puppet%25e7%259a%2584generate%25e5%2587%25bd%25e6%2595%25b0</link>
		<comments>http://blog.flib.me/2010/07/08/puppet%e7%9a%84generate%e5%87%bd%e6%95%b0/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 11:30:10 +0000</pubDate>
		<dc:creator>flex</dc:creator>
				<category><![CDATA[puppet]]></category>
		<category><![CDATA[运维]]></category>
		<category><![CDATA[generate]]></category>

		<guid isPermaLink="false">http://blog.flib.me/?p=38235</guid>
		<description><![CDATA[这个函数不能直接执行shell脚本，需要/usr/bin/env等做为第一个参数，如： $hostalias = generate(&#34;/usr/bin/env&#34;, &#34;/tmp/genhname.sh&#34;, &#34;172.16.0.133&#34;) 其次，这个函数的执行的是master上的脚本，它仅仅是将client上的变量拿回来，在本地执行；也就是说/tmp/genhname.sh要位于master的相应路径上，且有执行权限，不需要将脚本文件分发到client。]]></description>
			<content:encoded><![CDATA[<p>这个函数不能直接执行shell脚本，需要/usr/bin/env等做为第一个参数，如：</p>
<pre class="brush: plain; gutter: false;">$hostalias = generate(&quot;/usr/bin/env&quot;, &quot;/tmp/genhname.sh&quot;, &quot;172.16.0.133&quot;)</pre>
<p>其次，这个函数的执行的是<strong>master上的脚本</strong>，它仅仅是将client上的变量拿回来，在本地执行；也就是说/tmp/genhname.sh要位于master的相应路径上，且有执行权限，不需要将脚本文件分发到client。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flib.me/2010/07/08/puppet%e7%9a%84generate%e5%87%bd%e6%95%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>puppet dashboard的安装</title>
		<link>http://blog.flib.me/2010/07/07/puppet-dashboard%e7%9a%84%e5%ae%89%e8%a3%85/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=puppet-dashboard%25e7%259a%2584%25e5%25ae%2589%25e8%25a3%2585</link>
		<comments>http://blog.flib.me/2010/07/07/puppet-dashboard%e7%9a%84%e5%ae%89%e8%a3%85/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 02:51:32 +0000</pubDate>
		<dc:creator>flex</dc:creator>
				<category><![CDATA[puppet]]></category>
		<category><![CDATA[运维]]></category>
		<category><![CDATA[dashboard]]></category>

		<guid isPermaLink="false">http://blog.flib.me/?p=38206</guid>
		<description><![CDATA[以下过程基于debian: 系统要求： ruby &#62;= 1.8.1 rake &#62;= 0.8.3 （在lenny里版本不够，需要squeeze，不过我觉得使用gem应该也能装） mysql ruby mysql bindings（我个人觉得对应的包为libmysql-ruby，不过网上的另一个deb包依赖的是dbconfig-common libdbd-mysql-ruby） 安装过程： 1. 获得最新源码： git clone git://github.com/reductivelabs/puppet-dashboard.git 2. 设置数据库： cd puppet_dashboard/config cp database.yml.example database.yml 编辑database.yml，在development域中加入数据库用户名、密码，然后进行数据库初始化（确保mysql服务已经启动）： rake install （中间可能需要运行rake gem:install） 3.设置puppetmaster： 部署lib文件： cp puppet_dashboard/lib/puppet/puppet_dashboard.rb /usr/lib/ruby/1.8/puppet/reports/ 这点和readme中描述不符，不过作者的方法怎么实验都不成功。:( 然后在/etc/puppet/puppet.conf的puppetmasterd域中加入： reports = puppet_dashboard 可以写多种方法，用逗号分隔，比如： reports = puppet_dashboard, log, store 最后重启服务端 4.运行dashboard server script/server 5.设置puppet client： 在/etc/puppet/puppet.conf的puppetd域加入： [...]]]></description>
			<content:encoded><![CDATA[<p>以下过程基于debian:</p>
<p><strong>系统要求：</strong><br />
ruby &gt;= 1.8.1<br />
rake &gt;= 0.8.3 （在lenny里版本不够，需要squeeze，不过我觉得使用gem应该也能装）<br />
mysql<br />
ruby mysql bindings（我个人觉得对应的包为libmysql-ruby，不过网上的另一个deb包依赖的是dbconfig-common libdbd-mysql-ruby）</p>
<p><strong>安装过程：</strong></p>
<p>1. 获得最新源码：</p>
<pre class="brush: bash; gutter: false;">git clone git://github.com/reductivelabs/puppet-dashboard.git</pre>
<p>2. 设置数据库：</p>
<pre class="brush: bash; gutter: false;">
cd puppet_dashboard/config
cp database.yml.example database.yml
</pre>
<p>编辑database.yml，在development域中加入数据库用户名、密码，然后进行数据库初始化（确保mysql服务已经启动）：</p>
<pre class="brush: plain; gutter: false;">rake install</pre>
<p>（中间可能需要运行rake gem:install）</p>
<p>3.设置puppetmaster：</p>
<p>部署lib文件：</p>
<pre class="brush: bash; gutter: false;">cp  puppet_dashboard/lib/puppet/puppet_dashboard.rb  /usr/lib/ruby/1.8/puppet/reports/</pre>
<p>这点和readme中描述不符，不过作者的方法怎么实验都不成功。:(</p>
<p>然后在/etc/puppet/puppet.conf的puppetmasterd域中加入：</p>
<pre class="brush: plain; gutter: false;">reports = puppet_dashboard</pre>
<p>可以写多种方法，用逗号分隔，比如：</p>
<pre class="brush: plain; gutter: false;">reports = puppet_dashboard, log, store</pre>
<p>最后重启服务端</p>
<p>4.运行dashboard server</p>
<pre class="brush: plain; gutter: false;">script/server</pre>
<p>5.设置puppet client：</p>
<p>在/etc/puppet/puppet.conf的puppetd域加入：</p>
<pre class="brush: plain; gutter: false;">report = true</pre>
<p>重启客户端</p>
<p>如果没有意外，dashboard将会接收到新的report，访问http://localhost:3000/进入web界面。</p>
<p>如果想将以前的report导入，在dashboard目录运行：</p>
<pre class="brush: bash; gutter: false;">rake reports:import</pre>
<p>如果reportdir不是/var/lib/puppet/reports则运行：</p>
<pre class="brush: bash; gutter: false;">rake reports:import REPORT_DIR=/path/to/your/reports</pre>
<p>如果时区显示有问题，在config/enviroment.rb文件中修改：</p>
<pre class="brush: ruby; gutter: false;">config.time_zone = 'Beijing'</pre>
<p><em>参考：</em></p>
<p><em>1. <a href="http://docs.puppetlabs.com/guides/installing_dashboard.html" target="_blank">http://docs.puppetlabs.com/guides/installing_dashboard.html</a></em></p>
<p><em>2.<a href="http://zcentric.com/2010/03/11/install-puppet-dashboard-on-redhatcentos-5/" target="_blank">http://zcentric.com/2010/03/11/install-puppet-dashboard-on-redhatcentos-5/</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flib.me/2010/07/07/puppet-dashboard%e7%9a%84%e5%ae%89%e8%a3%85/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>关于puppet的import</title>
		<link>http://blog.flib.me/2010/06/29/%e5%85%b3%e4%ba%8epuppet%e7%9a%84import/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e5%2585%25b3%25e4%25ba%258epuppet%25e7%259a%2584import</link>
		<comments>http://blog.flib.me/2010/06/29/%e5%85%b3%e4%ba%8epuppet%e7%9a%84import/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 14:49:26 +0000</pubDate>
		<dc:creator>flex</dc:creator>
				<category><![CDATA[puppet]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[module]]></category>

		<guid isPermaLink="false">http://blog.flib.me/?p=38201</guid>
		<description><![CDATA[import &#34;autofs&#34; import &#34;autofs/init.pp&#34; import &#34;autofs/util/stuff.pp&#34; 第一句与第二句会在模块路径中寻找autofs/manifests/init.pp并载入。 第三句只载入autofs/util/stuff.pp文件。 puppet 0.23.1之后的版本，位于modulepath下（默认是/etc/puppet/modules）的模块会被自动载入，所以不需要手动载入此目录下的各个模块了。 当你引用autofs模块中的craziness类时，puppet会自动在autofs模块下寻找craziness.pp文件中的这个类。使用这个技巧就可以不在模块的init.pp中写入额外的import了。]]></description>
			<content:encoded><![CDATA[<pre class="brush: python;">
import &quot;autofs&quot;
import &quot;autofs/init.pp&quot;
import &quot;autofs/util/stuff.pp&quot;
</pre>
<p>第一句与第二句会在模块路径中寻找autofs/manifests/init.pp并载入。<br />
第三句只载入autofs/util/stuff.pp文件。</p>
<p>puppet 0.23.1之后的版本，位于modulepath下（默认是/etc/puppet/modules）的模块会被自动载入，所以不需要手动载入此目录下的各个模块了。</p>
<p>当你引用autofs模块中的craziness类时，puppet会自动在autofs模块下寻找craziness.pp文件中的这个类。使用这个技巧就可以不在模块的init.pp中写入额外的import了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flib.me/2010/06/29/%e5%85%b3%e4%ba%8epuppet%e7%9a%84import/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>python全局变量与命名空间</title>
		<link>http://blog.flib.me/2010/06/10/python%e5%85%a8%e5%b1%80%e5%8f%98%e9%87%8f%e4%b8%8e%e5%91%bd%e5%90%8d%e7%a9%ba%e9%97%b4/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=python%25e5%2585%25a8%25e5%25b1%2580%25e5%258f%2598%25e9%2587%258f%25e4%25b8%258e%25e5%2591%25bd%25e5%2590%258d%25e7%25a9%25ba%25e9%2597%25b4</link>
		<comments>http://blog.flib.me/2010/06/10/python%e5%85%a8%e5%b1%80%e5%8f%98%e9%87%8f%e4%b8%8e%e5%91%bd%e5%90%8d%e7%a9%ba%e9%97%b4/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 14:22:58 +0000</pubDate>
		<dc:creator>flex</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[global]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[全局变量]]></category>

		<guid isPermaLink="false">http://blog.flib.me/?p=38191</guid>
		<description><![CDATA[KEY_WORD = &#34;A&#34; def temp(): print KEY_WORD KEY_WORD = &#34;B&#34; 这段代码运行会提示变量KEY_WORD在定义前使用。原因是因为一旦在函数中修改全局变量，则python会将全局变量认成局部变量，在函数的命名空间内寻找其定义。如果要修改全局变量，要在函数内使用global关键字进行声明。如下： KEY_WORD = &#34;A&#34; def temp(): global KEY_WORD print KEY_WORD KEY_WORD = &#34;B&#34; 当然，我个人更倾向将全局变量只作为常量。]]></description>
			<content:encoded><![CDATA[<pre class="brush: python;">
KEY_WORD = &quot;A&quot;

def temp():
    print KEY_WORD
    KEY_WORD = &quot;B&quot;
</pre>
<p>这段代码运行会提示变量KEY_WORD在定义前使用。原因是因为一旦在函数中修改全局变量，则python会将全局变量认成局部变量，在函数的命名空间内寻找其定义。如果要修改全局变量，要在函数内使用global关键字进行声明。如下：</p>
<pre class="brush: python;">
KEY_WORD = &quot;A&quot;

def temp():
    global KEY_WORD
    print KEY_WORD
    KEY_WORD = &quot;B&quot;
</pre>
<p>当然，我个人更倾向将全局变量只作为常量。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flib.me/2010/06/10/python%e5%85%a8%e5%b1%80%e5%8f%98%e9%87%8f%e4%b8%8e%e5%91%bd%e5%90%8d%e7%a9%ba%e9%97%b4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>shell中的$@与通配符</title>
		<link>http://blog.flib.me/2010/05/20/shell%e4%b8%ad%e7%9a%84%e4%b8%8e%e9%80%9a%e9%85%8d%e7%ac%a6/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=shell%25e4%25b8%25ad%25e7%259a%2584%25e4%25b8%258e%25e9%2580%259a%25e9%2585%258d%25e7%25ac%25a6</link>
		<comments>http://blog.flib.me/2010/05/20/shell%e4%b8%ad%e7%9a%84%e4%b8%8e%e9%80%9a%e9%85%8d%e7%ac%a6/#comments</comments>
		<pubDate>Thu, 20 May 2010 11:22:00 +0000</pubDate>
		<dc:creator>flex</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[$@]]></category>
		<category><![CDATA[引号]]></category>
		<category><![CDATA[通配符]]></category>

		<guid isPermaLink="false">http://blog.flib.me/?p=38185</guid>
		<description><![CDATA[$@在shell中表示所有参数，与$*不同的是，$@中的每个参数都相当于被双引号包含的独立字符串。 然而如果使用通配符传递文件名的时候，如果文件名中包含空格，$@会将包含空格的文件名理解成数个文件，这时只要使用引号将通配符引起再传递或者使用&#8221;$@&#8221;就可以了。]]></description>
			<content:encoded><![CDATA[<p>$@在shell中表示所有参数，与$*不同的是，$@中的每个参数都相当于被双引号包含的独立字符串。</p>
<p>然而如果使用通配符传递文件名的时候，如果文件名中包含空格，$@会将包含空格的文件名理解成数个文件，这时只要使用引号将通配符引起再传递或者使用&#8221;$@&#8221;就可以了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flib.me/2010/05/20/shell%e4%b8%ad%e7%9a%84%e4%b8%8e%e9%80%9a%e9%85%8d%e7%ac%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache在子目录取消访问控制</title>
		<link>http://blog.flib.me/2010/04/24/apache%e5%9c%a8%e5%ad%90%e7%9b%ae%e5%bd%95%e5%8f%96%e6%b6%88%e8%ae%bf%e9%97%ae%e6%8e%a7%e5%88%b6/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=apache%25e5%259c%25a8%25e5%25ad%2590%25e7%259b%25ae%25e5%25bd%2595%25e5%258f%2596%25e6%25b6%2588%25e8%25ae%25bf%25e9%2597%25ae%25e6%258e%25a7%25e5%2588%25b6</link>
		<comments>http://blog.flib.me/2010/04/24/apache%e5%9c%a8%e5%ad%90%e7%9b%ae%e5%bd%95%e5%8f%96%e6%b6%88%e8%ae%bf%e9%97%ae%e6%8e%a7%e5%88%b6/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 08:09:23 +0000</pubDate>
		<dc:creator>flex</dc:creator>
				<category><![CDATA[运维]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[satisfy]]></category>
		<category><![CDATA[访问控制]]></category>

		<guid isPermaLink="false">http://blog.flib.me/?p=38175</guid>
		<description><![CDATA[Removing controls in subdirectories The following example shows how to use the Satisfy directive to disable access controls in a subdirectory of a protected directory. This technique should be used with caution, because it will also disable any access controls imposed by mod_authz_host. &#60;Directory /path/to/protected/&#62; Require user david &#60;/Directory&#62; &#60;Directory /path/to/protected/unprotected&#62; # All access controls [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Removing controls in subdirectories</p>
<p>The following example shows how to use the Satisfy directive to disable access controls in a subdirectory of a protected directory. This technique should be used with caution, because it will also disable any access controls imposed by mod_authz_host.</p>
<pre class="brush: plain; gutter: false; highlight: [7];">
&lt;Directory /path/to/protected/&gt;
Require user david
&lt;/Directory&gt;
&lt;Directory /path/to/protected/unprotected&gt;
# All access controls and authentication are disabled
# in this directory
Satisfy Any
Allow from all
&lt;/Directory&gt;﻿
</pre>
</blockquote>
<p>截取自apache 2.2手册<a href="http://httpd.apache.org/docs/2.2/mod/core.html#require">http://httpd.apache.org/docs/2.2/mod/core.html#require</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flib.me/2010/04/24/apache%e5%9c%a8%e5%ad%90%e7%9b%ae%e5%bd%95%e5%8f%96%e6%b6%88%e8%ae%bf%e9%97%ae%e6%8e%a7%e5%88%b6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Marvell 88E8056 网卡驱动</title>
		<link>http://blog.flib.me/2010/04/16/marvell-88e8056-%e7%bd%91%e5%8d%a1%e9%a9%b1%e5%8a%a8/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=marvell-88e8056-%25e7%25bd%2591%25e5%258d%25a1%25e9%25a9%25b1%25e5%258a%25a8</link>
		<comments>http://blog.flib.me/2010/04/16/marvell-88e8056-%e7%bd%91%e5%8d%a1%e9%a9%b1%e5%8a%a8/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 10:57:40 +0000</pubDate>
		<dc:creator>flex</dc:creator>
				<category><![CDATA[应用]]></category>
		<category><![CDATA[88e8056]]></category>
		<category><![CDATA[marvell]]></category>
		<category><![CDATA[驱动]]></category>

		<guid isPermaLink="false">http://blog.flib.me/?p=38171</guid>
		<description><![CDATA[在Marvell官网有linux 2.6内核驱动下载，然而在2.6.32内核上以模块形式编译安装时总是出错 /tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c: In function ‘SkGeTestIsr’: /tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c:1750: error: ‘TASK_NORMAL’ undeclared (first use in this function) /tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c:1750: error: (Each undeclared identifier is reported only once /tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c:1750: error: for each function it appears in.) /tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c: In function ‘SkGeTestMsi’: /tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c:1780: warning: passing argument 2 of ‘request_irq’ from incompatible pointer type /tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c:1790: error: ‘TASK_UNINTERRUPTIBLE’ undeclared (first use in this [...]]]></description>
			<content:encoded><![CDATA[<p>在Marvell官网有linux 2.6内核驱动下载，然而在2.6.32内核上以模块形式编译安装时总是出错</p>
<blockquote><p>/tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c: In function ‘SkGeTestIsr’:<br />
/tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c:1750: error: ‘TASK_NORMAL’ undeclared (first use in this function)<br />
/tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c:1750: error: (Each undeclared identifier is reported only once<br />
/tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c:1750: error: for each function it appears in.)<br />
/tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c: In function ‘SkGeTestMsi’:<br />
/tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c:1780: warning: passing argument 2 of ‘request_irq’ from incompatible pointer type<br />
/tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c:1790: error: ‘TASK_UNINTERRUPTIBLE’ undeclared (first use in this function)<br />
/tmp/Sk98IAfiDEcqKrUTbOYRkXjlT/all/skge.c:1790: error: implicit declaration of function ‘schedule_timeout’</p></blockquote>
<p>根据readme的步骤，以patch的方式打到内核里就没有问题了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flib.me/2010/04/16/marvell-88e8056-%e7%bd%91%e5%8d%a1%e9%a9%b1%e5%8a%a8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>find的exec参数</title>
		<link>http://blog.flib.me/2010/04/14/find%e7%9a%84exec%e5%8f%82%e6%95%b0/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=find%25e7%259a%2584exec%25e5%258f%2582%25e6%2595%25b0</link>
		<comments>http://blog.flib.me/2010/04/14/find%e7%9a%84exec%e5%8f%82%e6%95%b0/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 15:08:31 +0000</pubDate>
		<dc:creator>flex</dc:creator>
				<category><![CDATA[应用]]></category>
		<category><![CDATA[exec]]></category>
		<category><![CDATA[execdir]]></category>
		<category><![CDATA[find]]></category>

		<guid isPermaLink="false">http://blog.flib.me/?p=38169</guid>
		<description><![CDATA[find的-exec参数执行命令时，当前目录是执行者运行find程序时所在的目录。如果需要在执行命令时进入匹配项所在目录，使用-execdir参数。两者均不能识别命令中的通配符，可以通过间接调用一个单行脚本来解决。]]></description>
			<content:encoded><![CDATA[<p>find的-exec参数执行命令时，当前目录是执行者运行find程序时所在的目录。如果需要在执行命令时进入匹配项所在目录，使用-execdir参数。两者均不能识别命令中的通配符，可以通过间接调用一个单行脚本来解决。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flib.me/2010/04/14/find%e7%9a%84exec%e5%8f%82%e6%95%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>纠结的terminator 0.90</title>
		<link>http://blog.flib.me/2010/04/01/%e7%ba%a0%e7%bb%93%e7%9a%84terminator-0-90/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e7%25ba%25a0%25e7%25bb%2593%25e7%259a%2584terminator-0-90</link>
		<comments>http://blog.flib.me/2010/04/01/%e7%ba%a0%e7%bb%93%e7%9a%84terminator-0-90/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 05:20:12 +0000</pubDate>
		<dc:creator>flex</dc:creator>
				<category><![CDATA[应用]]></category>
		<category><![CDATA[terminator]]></category>

		<guid isPermaLink="false">http://blog.flib.me/?p=38167</guid>
		<description><![CDATA[经过数个月的开发，terminator终于发布了0.90版（从0.14直接到0.90 -. -）。但是令人失望的是bug众多，而且没有我需要的命令行拆分窗口的新特性。随后作者紧急发布了0.91版修正bug。 ps1: 我以前提交的kde下面关闭tab时导致窗口变小的bug已经修正 ps2: terminator已经进入了官方源 ps3: 貌似字体颜色有点问题，变深了，已经有人提交了这个bug ps4: use_system_font选项在man手册里面没有，默认是True，会导致字体设置无效。我提交了这个bug]]></description>
			<content:encoded><![CDATA[<p>经过数个月的开发，terminator终于发布了0.90版（从0.14直接到0.90 -. -）。但是令人失望的是bug众多，而且没有我需要的命令行拆分窗口的新特性。随后作者紧急发布了0.91版修正bug。</p>
<p>ps1: 我以前提交的kde下面关闭tab时导致窗口变小的<a href="https://bugs.launchpad.net/terminator/+bug/500904">bug</a>已经修正</p>
<p>ps2: terminator已经进入了官方源</p>
<p>ps3: 貌似字体颜色有点问题，变深了，已经有人提交了这个<a href="https://bugs.launchpad.net/terminator/+bug/552904">bug</a></p>
<p>ps4: use_system_font选项在man手册里面没有，默认是True，会导致字体设置无效。我提交了这个<a href="https://bugs.launchpad.net/terminator/+bug/553033">bug</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flib.me/2010/04/01/%e7%ba%a0%e7%bb%93%e7%9a%84terminator-0-90/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx的log</title>
		<link>http://blog.flib.me/2010/01/29/nginx%e7%9a%84log/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=nginx%25e7%259a%2584log</link>
		<comments>http://blog.flib.me/2010/01/29/nginx%e7%9a%84log/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 09:03:39 +0000</pubDate>
		<dc:creator>flex</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[运维]]></category>
		<category><![CDATA[access_log]]></category>
		<category><![CDATA[error_log]]></category>
		<category><![CDATA[error_page]]></category>

		<guid isPermaLink="false">http://blog.flib.me/?p=38161</guid>
		<description><![CDATA[access_log的最小作用域是location，关闭方式是：access_log off; error_log的最小作用域是http，关闭方式是：error_log /dev/null; 如果一个请求是404之类的，则access_log中记录404，error_log同时会记录open filename failed等错误，如果不需要，可以改变http域error_log的记录等级，也可以直接关闭（还有log_not_found选项可以关闭记录open filename failed错误）。]]></description>
			<content:encoded><![CDATA[<p>access_log的最小作用域是location，关闭方式是：access_log off;</p>
<p>error_log的最小作用域是http，关闭方式是：error_log /dev/null;</p>
<p>如果一个请求是404之类的，则access_log中记录404，error_log同时会记录open filename failed等错误，如果不需要，可以改变http域error_log的记录等级，也可以直接关闭（还有log_not_found选项可以关闭记录open filename failed错误）。<span style="text-decoration: line-through;"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flib.me/2010/01/29/nginx%e7%9a%84log/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
