<?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/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>きぬろぐ &#187; Linux</title>
	<atom:link href="http://www.kinusati.net/category/computer/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kinusati.net</link>
	<description>だめでつれづれな日記</description>
	<lastBuildDate>Sun, 15 Jan 2012 23:42:13 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.kinusati.net/category/computer/linux/feed/" />
		<item>
		<title>tarコマンドの&#8211;newer-mtimeオプション</title>
		<link>http://www.kinusati.net/2012/01/16/tar%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%81%ae-newer-mtime%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7%e3%83%b3/</link>
		<comments>http://www.kinusati.net/2012/01/16/tar%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%81%ae-newer-mtime%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7%e3%83%b3/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 23:42:13 +0000</pubDate>
		<dc:creator>kinusati</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.kinusati.net/?p=1117</guid>
		<description><![CDATA[CentOS5に付属しているtarコマンド(GNU tar)が高機能で、ある日付以後に修正が入ったファイルだけをバックアップするというオプションがついています。&#8211;newer-mtimeオプションというやつです &#8230; <a href="http://www.kinusati.net/2012/01/16/tar%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%81%ae-newer-mtime%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7%e3%83%b3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>CentOS5に付属しているtarコマンド(GNU tar)が高機能で、ある日付以後に修正が入ったファイルだけをバックアップするというオプションがついています。&#8211;newer-mtimeオプションというやつです。</p>
<p>以下、man tarを抜粋</p>
<pre>
       --newer-mtime DATE
              like --newer, but with a DATE
</pre>
<p>例えばこのコマンドを使って、2012/01/01以後に出力されたログファイルだけを対象にバックアップを取得するには以下を実行すればいいわけです。</p>
<pre>
$ tar cvfz /var/tmp/backup.tar.gz --newer-mtime 2012-01-01 /var/log
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.kinusati.net/2012/01/16/tar%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%81%ae-newer-mtime%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7%e3%83%b3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.kinusati.net/2012/01/16/tar%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%81%ae-newer-mtime%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7%e3%83%b3/" />
	</item>
		<item>
		<title>Linuxのcron</title>
		<link>http://www.kinusati.net/2011/10/03/linux%e3%81%aecron/</link>
		<comments>http://www.kinusati.net/2011/10/03/linux%e3%81%aecron/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 08:22:07 +0000</pubDate>
		<dc:creator>kinusati</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.kinusati.net/?p=1072</guid>
		<description><![CDATA[Solarisと違って、Linuxのcronで「%」(パーセント)を利用するためにはエスケープしないとダメなんですね。はまりました。 $ man 5 crontab ... 「 第 6」フィールド (行の残りの部分) に &#8230; <a href="http://www.kinusati.net/2011/10/03/linux%e3%81%aecron/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Solarisと違って、Linuxのcronで「%」(パーセント)を利用するためにはエスケープしないとダメなんですね。はまりました。</p>
<pre>
$ man 5 crontab
...
「 第 6」フィールド (行の残りの部分) には実行されるコマンドを指定する。その行のコマンド部 (改行文字ま
たは % 文字まで) が /bin/sh (またはその crontab ファイルの SHELL 環境変数で指定されたシェル) によって
実 行される。コマンド中にパーセント記号 (%) がバックスラッシュ (\) によってエスケープされずに置かれて
いると、改行文字に置き換えられ、最初に現れた % 以降の全てのデータは標準入力としてコマンドに送られる。
</pre>
<p>覚えておきましょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kinusati.net/2011/10/03/linux%e3%81%aecron/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.kinusati.net/2011/10/03/linux%e3%81%aecron/" />
	</item>
		<item>
		<title>maildropの変数展開とシェル展開</title>
		<link>http://www.kinusati.net/2011/09/20/maildrop%e3%81%ae%e5%a4%89%e6%95%b0%e5%b1%95%e9%96%8b%e3%81%a8%e3%82%b7%e3%82%a7%e3%83%ab%e5%b1%95%e9%96%8b/</link>
		<comments>http://www.kinusati.net/2011/09/20/maildrop%e3%81%ae%e5%a4%89%e6%95%b0%e5%b1%95%e9%96%8b%e3%81%a8%e3%82%b7%e3%82%a7%e3%83%ab%e5%b1%95%e9%96%8b/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 08:30:10 +0000</pubDate>
		<dc:creator>kinusati</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.kinusati.net/?p=972</guid>
		<description><![CDATA[maildropでは以下の展開ルールがあります。 参照ページ: http://www.courier-mta.org/maildropfilter.html 変数展開 Variable substitution Vari &#8230; <a href="http://www.kinusati.net/2011/09/20/maildrop%e3%81%ae%e5%a4%89%e6%95%b0%e5%b1%95%e9%96%8b%e3%81%a8%e3%82%b7%e3%82%a7%e3%83%ab%e5%b1%95%e9%96%8b/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>maildropでは以下の展開ルールがあります。</p>
<p>参照ページ: <a href=http://www.courier-mta.org/maildropfilter.html>http://www.courier-mta.org/maildropfilter.html</a></p>
<h3>変数展開</h3>
<pre>
Variable substitution
Variable substitution is performed on text literals that's surrounded by double quotation marks. The &quot;$&quot; character, followed by a variable name, is replaced by that variable's contents.

MAILBOX=&quot;$HOME/Mailbox&quot;
</pre>
<p>要するに、ダブルクォートで囲むと$で始まる変数をmaildrop上で展開します。普通ですね。</p>
<h3>変数の環境変数への反映</h3>
<p>maildropでは、変数を定義すると、環境変数にもセットします。ので、外部コマンド実行時にmaildroprc上で定義した環境変数がそのまま使えますとのことです。</p>
<pre>
All internal variables are exported back as environment variables when maildrop runs an external command. Changes to internal variables, made by the filter file, are reflected in the exported environment.
</pre>
<p>これは意外と盲点でしたね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kinusati.net/2011/09/20/maildrop%e3%81%ae%e5%a4%89%e6%95%b0%e5%b1%95%e9%96%8b%e3%81%a8%e3%82%b7%e3%82%a7%e3%83%ab%e5%b1%95%e9%96%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.kinusati.net/2011/09/20/maildrop%e3%81%ae%e5%a4%89%e6%95%b0%e5%b1%95%e9%96%8b%e3%81%a8%e3%82%b7%e3%82%a7%e3%83%ab%e5%b1%95%e9%96%8b/" />
	</item>
		<item>
		<title>bashのコメントアウト ON/OFF</title>
		<link>http://www.kinusati.net/2011/09/20/bash%e3%81%ae%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%82%a2%e3%82%a6%e3%83%88-onoff/</link>
		<comments>http://www.kinusati.net/2011/09/20/bash%e3%81%ae%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%82%a2%e3%82%a6%e3%83%88-onoff/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 01:49:41 +0000</pubDate>
		<dc:creator>kinusati</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://www.kinusati.net/?p=968</guid>
		<description><![CDATA[bashって、コメントアウトを使う・使わないって設定できるんですね。 コメントアウトを使う(デフォルト) $ shopt -s interactive_comments $ echo #asdf#asdf コメントアウト &#8230; <a href="http://www.kinusati.net/2011/09/20/bash%e3%81%ae%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%82%a2%e3%82%a6%e3%83%88-onoff/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>bashって、コメントアウトを使う・使わないって設定できるんですね。</p>
<h3>コメントアウトを使う(デフォルト)</h3>
<pre>
$ shopt -s interactive_comments
$ echo #asdf#asdf
</pre>
<h3>コメントアウトを無視</h3>
<pre>
$ shopt -u interactive_comments
$ echo #asdf#asdf
#asdf#asdf
</pre>
<h3>参考(shopt)</h3>
<pre>
$ shopt
cdable_vars     off
cdspell         off
checkhash       off
checkwinsize    on
cmdhist         on
dotglob         off
execfail        off
expand_aliases  on
extdebug        off
extglob         off
extquote        on
failglob        off
force_fignore   on
gnu_errfmt      off
histappend      off
histreedit      off
histverify      off
hostcomplete    on
huponexit       off
interactive_comments    on
lithist         off
login_shell     on
mailwarn        off
no_empty_cmd_completion off
nocaseglob      off
nocasematch     off
nullglob        off
progcomp        on
promptvars      on
restricted_shell        off
shift_verbose   off
sourcepath      on
xpg_echo        off
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.kinusati.net/2011/09/20/bash%e3%81%ae%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%82%a2%e3%82%a6%e3%83%88-onoff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.kinusati.net/2011/09/20/bash%e3%81%ae%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%82%a2%e3%82%a6%e3%83%88-onoff/" />
	</item>
		<item>
		<title>mailmanのバウンスメッセージ処理について</title>
		<link>http://www.kinusati.net/2011/09/19/mailman%e3%81%ae%e3%83%90%e3%82%a6%e3%83%b3%e3%82%b9%e3%83%a1%e3%83%83%e3%82%bb%e3%83%bc%e3%82%b8%e5%87%a6%e7%90%86%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/</link>
		<comments>http://www.kinusati.net/2011/09/19/mailman%e3%81%ae%e3%83%90%e3%82%a6%e3%83%b3%e3%82%b9%e3%83%a1%e3%83%83%e3%82%bb%e3%83%bc%e3%82%b8%e5%87%a6%e7%90%86%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 09:31:07 +0000</pubDate>
		<dc:creator>kinusati</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.kinusati.net/?p=962</guid>
		<description><![CDATA[mailmanのバウンスメッセージ処理について興味があったので調べてみました。 はじめに、mailmanにはML購読ユーザにメールが一定期間届かない場合、自動退会する機能がついていますが、その処理はユーザからのバウンスメ &#8230; <a href="http://www.kinusati.net/2011/09/19/mailman%e3%81%ae%e3%83%90%e3%82%a6%e3%83%b3%e3%82%b9%e3%83%a1%e3%83%83%e3%82%bb%e3%83%bc%e3%82%b8%e5%87%a6%e7%90%86%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>mailmanのバウンスメッセージ処理について興味があったので調べてみました。</p>
<p>はじめに、mailmanにはML購読ユーザにメールが一定期間届かない場合、自動退会する機能がついていますが、その処理はユーザからのバウンスメッセージを元に動作します。</p>
<p>「ユーザからのバウンスメッセージを元に動作する」と一口に書けばそれまでですが、インターネットでのバウンスメッセージには様々な形式があり、それぞれのバウンスメッセージを正しく解析するのは容易ではありません。sendmail/qmail/postfix/yahoo/exchange等様々がMTAが応答するバウンスメッセージはばらばらですから。</p>
<p>で、mailmanがこれら雑多なバウンスメッセージをどうやって判定しているかというと、MTAが出す個別のバウンスメッセージにそれぞれ対応しているようです。</p>
<p>実際の処理を見てみましょう。</p>
<p>これらバウンスメッセージの処理はBounceRunnerというmailmanへのバウンスメッセージを解析するデーモンプログラムで処理されています。</p>
<p>BounceRunnerではバウンスメールを解析し、ループ等の検出を行った後に、それぞれのMTAに対応したバウンスメッセージの処理にディスパッチしています。</p>
<p>- Mailman/Queue/BounceRunner.py</p>
<pre>
    227         # Try VERP detection first, since it's quick and easy
    228         addrs = verp_bounce(mlist, msg)
    229         if addrs:
    230             # We have an address, but check if the message is non-fatal.
    231             if BouncerAPI.ScanMessages(mlist, msg) is BouncerAPI.Stop:
    232                 return
    233         else:
    234             # See if this was a probe message.
    235             token = verp_probe(mlist, msg)
    236             if token:
    237                 self._probe_bounce(mlist, token)
    238                 return
    239             # That didn't give us anything useful, so try the old fashion
    240             # bounce matching modules.
    241             addrs = BouncerAPI.ScanMessages(mlist, msg)
    242             if addrs is BouncerAPI.Stop:
    243                 # This is a recognized, non-fatal notice. Ignore it.
    244                 return
</pre>
<p>この231/241行目に出てくるBouncerAPI.ScanMessages()というメソッドがポイントです。<br />
このメソッドは、mailmanへのバウンスメッセージかどうかをMTA毎に解析します。(実際にはバウンスメッセージに含まれているバウンス元ユーザを抽出する処理を行っています)</p>
<p>- Mailman/Bouncers/BouncerAPI.py</p>
<pre>
     61 # msg must be a mimetools.Message
     62 def ScanMessages(mlist, msg):
     63     for module in BOUNCE_PIPELINE:
     64         modname = 'Mailman.Bouncers.' + module
     65         __import__(modname)
     66         addrs = sys.modules[modname].process(msg)
     67         if addrs:
     68             # Return addrs even if it is Stop. BounceRunner needs this info.
     69             return addrs
     70     return []
</pre>
<p>63行目-69行目でMTA毎の個別処理についてループしていますが、このループ一覧は以下になります。</p>
<p>- Mailman/Bouncers/BouncerAPI.py</p>
<pre>
     39 BOUNCE_PIPELINE = [
     40     'DSN',
     41     'Qmail',
     42     'Postfix',
     43     'Yahoo',
     44     'Caiwireless',
     45     'Exchange',
     46     'Exim',
     47     'Netscape',
     48     'Compuserve',
     49     'Microsoft',
     50     'GroupWise',
     51     'SMTP32',
     52     'SimpleMatch',
     53     'SimpleWarning',
     54     'Yale',
     55     'LLNL',
     56     'AOL',
     57     ]
</pre>
<p>これを見る限り、DSN(Delivery Status Notifycation)から始まり、qmail->postfix->yahoo &#8230;と個別に判定を加えているようです。</p>
<p>試しにDSNを見てみましょう。PGをざっと見る限り、マルチパートで且つ、DSNの書式に則った応答の場合は、バウンスメッセージからバウンス応答したユーザ情報を抜き出す作りになっているようです。<br />
- Mailman/Bouncers/DSN.py</p>
<pre>
     64             for header in ('original-recipient', 'final-recipient'):
     65                 for k, v in msgblock.get_params([], header):
     66                     if k.lower() == 'rfc822':
     67                         foundp = True
     68                     else:
     69                         params.append(k)
     70                 if foundp:
     71                     # Note that params should already be unquoted.
     72                     addrs.extend(params)
     73                     break
     74                 else:
     75                     # MAS: This is a kludge, but SMTP-GATEWAY01.intra.home.dk
     76                     # has a final-recipient with an angle-addr and no
     77                     # address-type parameter at all. Non-compliant, but ...
     78                     for param in params:
     79                         if param.startswith('&lt;') and param.endswith('&gt;'):
     80                             addrs.append(param[1:-1])
</pre>
<p>MTA毎に個別の処理を書いてはいますが、本当に個別となる部分だけを抽出して書いているので、かなりきれいなプログラムだと思いました。すごいな、mailman。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kinusati.net/2011/09/19/mailman%e3%81%ae%e3%83%90%e3%82%a6%e3%83%b3%e3%82%b9%e3%83%a1%e3%83%83%e3%82%bb%e3%83%bc%e3%82%b8%e5%87%a6%e7%90%86%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.kinusati.net/2011/09/19/mailman%e3%81%ae%e3%83%90%e3%82%a6%e3%83%b3%e3%82%b9%e3%83%a1%e3%83%83%e3%82%bb%e3%83%bc%e3%82%b8%e5%87%a6%e7%90%86%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/" />
	</item>
		<item>
		<title>CentOS6 ext4でのファイルシステム拡張</title>
		<link>http://www.kinusati.net/2011/09/19/centos6-ext4%e3%81%a7%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e6%8b%a1%e5%bc%b5/</link>
		<comments>http://www.kinusati.net/2011/09/19/centos6-ext4%e3%81%a7%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e6%8b%a1%e5%bc%b5/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 08:26:30 +0000</pubDate>
		<dc:creator>kinusati</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.kinusati.net/?p=953</guid>
		<description><![CDATA[ファイルサーバ用途で利用しているCentOS6の特定パーティションが一杯になってきたので、VM上でディスクを拡張し、OS起動後オンラインでファイルシステム拡張してみました。 リサイズ前 [root@host1 ~]# d &#8230; <a href="http://www.kinusati.net/2011/09/19/centos6-ext4%e3%81%a7%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e6%8b%a1%e5%bc%b5/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>ファイルサーバ用途で利用しているCentOS6の特定パーティションが一杯になってきたので、VM上でディスクを拡張し、OS起動後オンラインでファイルシステム拡張してみました。</p>
<h3>リサイズ前</h3>
<pre>
[root@host1 ~]# df -h
Filesystem            Size  Used Avail Use% マウント位置
/dev/mapper/vg_host1-lv_root
                       34G  5.0G   27G  16% /
tmpfs                 1.9G   88K  1.9G   1% /dev/shm
/dev/sda1             485M   48M  412M  11% /boot
/dev/sdb               99G   86G  7.6G  92% /data
</pre>
<h3>リサイズ中</h3>
<p>100GBを200GBに拡張しました。</p>
<pre>
[root@host1 ~]# resize2fs /dev/sdb
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/sdb is mounted on /data; on-line resizing required
old desc_blocks = 7, new_desc_blocks = 13
Performing an on-line resize of /dev/sdb to 52428800 (4k) blocks.
The filesystem on /dev/sdb is now 52428800 blocks long.
</pre>
<p>拡張中はだんだん容量が増えていきます。</p>
<pre>
[user1@host1 backup]$ df -h
Filesystem            Size  Used Avail Use% マウント位置
/dev/mapper/vg_host1-lv_root
                       34G  5.0G   27G  16% /
tmpfs                 1.9G   88K  1.9G   1% /dev/shm
/dev/sda1             485M   48M  412M  11% /boot
/dev/sdb              153G   86G   59G  60% /data
</pre>
<p>簡単でオンラインに拡張できるので、すばらしいですね。ただ拡張中はI/O waitが100%になるので、実際の運用ではタイミングを見計らわないと痛い目に遭いそうだと言うことはわかりました。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kinusati.net/2011/09/19/centos6-ext4%e3%81%a7%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e6%8b%a1%e5%bc%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.kinusati.net/2011/09/19/centos6-ext4%e3%81%a7%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e6%8b%a1%e5%bc%b5/" />
	</item>
		<item>
		<title>ProFTPdのPassivePorts</title>
		<link>http://www.kinusati.net/2010/08/22/proftpd%e3%81%aepassiveports/</link>
		<comments>http://www.kinusati.net/2010/08/22/proftpd%e3%81%aepassiveports/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 13:18:09 +0000</pubDate>
		<dc:creator>kinusati</dc:creator>
				<category><![CDATA[freebsd]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.kinusati.net/?p=815</guid>
		<description><![CDATA[久しぶりにProFTPdの設定を行ったときに調べたことをメモ。 ProFTPdではFTPクライアントからPASVコマンドが送出された際に、クライアントに返却するポート番号を特定のレンジから選択する「PassivePort &#8230; <a href="http://www.kinusati.net/2010/08/22/proftpd%e3%81%aepassiveports/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>久しぶりにProFTPdの設定を行ったときに調べたことをメモ。</p>
<p>ProFTPdではFTPクライアントからPASVコマンドが送出された際に、クライアントに返却するポート番号を特定のレンジから選択する「<a href="http://www.proftpd.org/docs/directives/linked/config_ref_PassivePorts.html">PassivePorts</a>」という設定項目があります。コレを使うことでクライアントに返却するポートを49152-65534に絞ることも出来るというもの。</p>
<p>ただし、設定したポート範囲でポートオープン出来ない場合は、Kernelでポート選択をしてもらった上でログに書き出すとのこと。実用性を考慮すればまぁこうなりますか・・と思った次第です。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kinusati.net/2010/08/22/proftpd%e3%81%aepassiveports/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.kinusati.net/2010/08/22/proftpd%e3%81%aepassiveports/" />
	</item>
		<item>
		<title>OpenLDAP 2.4でUnable to allocate memory for transaction detail</title>
		<link>http://www.kinusati.net/2010/07/05/openldap-2-4%e3%81%a7unable-to-allocate-memory-for-transaction-detail/</link>
		<comments>http://www.kinusati.net/2010/07/05/openldap-2-4%e3%81%a7unable-to-allocate-memory-for-transaction-detail/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 10:21:21 +0000</pubDate>
		<dc:creator>kinusati</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://www.kinusati.net/?p=726</guid>
		<description><![CDATA[OpenLDAP2.4に対して同時接続数を増やすテストを行っていたところ、以下のエラーがログに出力されました。 「Unable to allocate memory for transaction detail」 何だ? &#8230; <a href="http://www.kinusati.net/2010/07/05/openldap-2-4%e3%81%a7unable-to-allocate-memory-for-transaction-detail/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>OpenLDAP2.4に対して同時接続数を増やすテストを行っていたところ、以下のエラーがログに出力されました。</p>
<p>「Unable to allocate memory for transaction detail」</p>
<p>何だ?これ。と思ってしらべていたら、Oracleのサイトに以下の情報が。</p>
<pre>
Berkeley DB occasionally returns the error: &quot;Unable to allocate  memory for transaction detail&quot;. What does that mean?This error means the maximum number of active  transactions configured for Berkeley DB has been reached. The Berkeley  DB environment should be configured to support more active transactions.  When all of the memory available in the database environment for  transactions is in use, calls to being a transaction will fail until  some active transactions complete. By default, the database environment  is configured to support at least 20 active transactions.

For more information see the &quot;&lt;a href=&quot;http://www.oracle.com/technology/documentation/berkeley-db/db/programmer_reference/txn_config.html&quot;&gt;Configuring  transactions&lt;/a&gt;&quot; section of the Berkeley DB Reference Guide.
</pre>
<p>BerkeleyDBに対して設定されたActiveトランザクション数の最大値に達したとのこと。参照の試験しかしていないのにおかしいな・・・</p>
<p>とりあえずDB_CONFIGファイルのset_lg_regionmax, set_lg_bsizeを倍にしたら回避できた。</p>
<pre>
#set_lg_regionmax 262144
#set_lg_bsize 2097152
set_lg_regionmax 524288
set_lg_bsize 4194304
</pre>
<p>参照だけでもトランザクションを使うのでしょうかね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kinusati.net/2010/07/05/openldap-2-4%e3%81%a7unable-to-allocate-memory-for-transaction-detail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.kinusati.net/2010/07/05/openldap-2-4%e3%81%a7unable-to-allocate-memory-for-transaction-detail/" />
	</item>
		<item>
		<title>JMeterで高負荷をかけたい場合</title>
		<link>http://www.kinusati.net/2010/07/04/jmeter%e3%81%a7%e9%ab%98%e8%b2%a0%e8%8d%b7%e3%82%92%e3%81%8b%e3%81%91%e3%81%9f%e3%81%84%e5%a0%b4%e5%90%88/</link>
		<comments>http://www.kinusati.net/2010/07/04/jmeter%e3%81%a7%e9%ab%98%e8%b2%a0%e8%8d%b7%e3%82%92%e3%81%8b%e3%81%91%e3%81%9f%e3%81%84%e5%a0%b4%e5%90%88/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 12:11:20 +0000</pubDate>
		<dc:creator>kinusati</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.kinusati.net/?p=704</guid>
		<description><![CDATA[負荷測定ツールにOSSのApache　JMeterというものがあります。かなり汎用的でつぶしがきくよいツールで、私もよく使います。JMeterについては以下の資料がよくまとまっています。 Apache JMeterで 負 &#8230; <a href="http://www.kinusati.net/2010/07/04/jmeter%e3%81%a7%e9%ab%98%e8%b2%a0%e8%8d%b7%e3%82%92%e3%81%8b%e3%81%91%e3%81%9f%e3%81%84%e5%a0%b4%e5%90%88/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>負荷測定ツールにOSSの<a href="http://jakarta.apache.org/jmeter/">Apache　JMeter</a>というものがあります。かなり汎用的でつぶしがきくよいツールで、私もよく使います。JMeterについては以下の資料がよくまとまっています。</p>
<ul>
<li><a onmousedown="return  clk(this.href,'','','','3','','0CCoQFjAC')" href="http://jasst.jp/archives/jasst07e/pdf/C2-1.pdf"><em>Apache JMeter</em>で  負荷試験をしよう！</a></li>
</ul>
<p>で、負荷をかける場合にはそのサーバの限界性能がどこかを探るケースが存在しますが、クライアント側のスペック不足やシナリオの作成方法が原因で負荷をかけきれないというケースがあります。スペック不足はともかくとして、シナリオ作成の方法がまずいことで計測結果が不十分になることはかっこわるいので、私が気がついた対処方法をまとめます。</p>
<h3>ループはループコントローラで書け!</h3>
<p>負荷をかける場合に、ユーザ1 &#8211; ユーザ10000迄のデータに連続してアクセスしたいケースがあったとしましょう。JMeterでこれを実装するには<strong>「While Controller」</strong>と<strong>「ループコントローラ」</strong>を利用する方法があると思います。</p>
<p>While Controllerを利用した方法)</p>
<p><a href="http://www.kinusati.net/wp-content/uploads/2010/07/JMeter-WhileController.png"><img src="http://www.kinusati.net/wp-content/uploads/2010/07/JMeter-WhileController.png" title="JMeter-WhileController" width="478" height="202" class="size-full wp-image-715 alignnone" /></a></p>
<p>ループコントローラを利用した方法)</p>
<p><a href="../wp-content/uploads/2010/07/JMeter-loopcontoller1.png"><img src="../wp-content/uploads/2010/07/JMeter-loopcontoller1.png" title="JMeter-loopcontoller" width="333" height="202" /></a></p>
<p>While ControllerでJavascriptを利用して変数評価を行う場合、非常に負荷が高くなるようで、ループコントローラと比較して数十分の1程度しか負荷がかけられなくなった事もあります。書き方は要注意ですね。</p>
<p><span style="color: #ff0000;"><strong>While Controller + Javascriptでループは回すなって事ですね。</strong></span></p>
<h3>計測時にリアルタイムでリスナーの統計レポート、結果をツリー表示、グラフ表示等は使うな!</h3>
<p>JMeterでは各種リスナーが充実していて、エラー率・スループットが一目でわかる統計レポート・グラフ表示機能等が存在します。</p>
<p>しかしこれらの機能を負荷計測と同時に使用すると、これらの処理自体に負荷がかかる模様です。結果十分な負荷をかけられないという事も。</p>
<p>対策は、リスナーの<strong>「シンプルデータライタ」</strong>を利用することです。シンプルデータライタは計測時にログ(jtl)をとることだけ行いますので、負荷はあまりかかりません。</p>
<p><a href="../wp-content/uploads/2010/07/JMeter-SimpleDataWriter.png"><img src="../wp-content/uploads/2010/07/JMeter-SimpleDataWriter.png" title="JMeter-SimpleDataWriter" width="374" height="89" /></a></p>
<p>統計レポート・結果をツリー表示・グラフ表示で見たい場合は計測後にこれらリスナを登録し、計測ログ(jtl)を読み込ませればいいんです。これで計測時には十分な負荷をかけることが出来、結果も後で参照出来ると。</p>
<p><a href="http://www.kinusati.net/wp-content/uploads/2010/07/JMeter-Graph.png"><img src="http://www.kinusati.net/wp-content/uploads/2010/07/JMeter-Graph.png" title="JMeter-Graph" width="389" height="167" class="alignnone size-full wp-image-717" /></a></p>
<p><span style="color: #ff0000;"><strong>計測時にはリスナーの<strong>「シンプルデータライタ」</strong>を利用しろ！グラフ表示等は後で読み込ませて結果を確認しろ！</strong></span>という事ですね。</p>
<p>JMeterを使いこなすにはまだまだノウハウが必要ですね。勉強になります。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kinusati.net/2010/07/04/jmeter%e3%81%a7%e9%ab%98%e8%b2%a0%e8%8d%b7%e3%82%92%e3%81%8b%e3%81%91%e3%81%9f%e3%81%84%e5%a0%b4%e5%90%88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.kinusati.net/2010/07/04/jmeter%e3%81%a7%e9%ab%98%e8%b2%a0%e8%8d%b7%e3%82%92%e3%81%8b%e3%81%91%e3%81%9f%e3%81%84%e5%a0%b4%e5%90%88/" />
	</item>
		<item>
		<title>OpenLDAP 2.4のチューニングについて</title>
		<link>http://www.kinusati.net/2010/07/04/openldap-2-4%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%8b%e3%83%b3%e3%82%b0%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/</link>
		<comments>http://www.kinusati.net/2010/07/04/openldap-2-4%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%8b%e3%83%b3%e3%82%b0%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 11:29:29 +0000</pubDate>
		<dc:creator>kinusati</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://www.kinusati.net/?p=706</guid>
		<description><![CDATA[OpenLDAP 2.4のチューニングについて調査していたら、日本LDAPユーザ会にいい資料がありました。 さあそ の先へ、OpenLDAPパフォーマンスチューニング これは、便利。早速参考にさせて頂きます。 ところで、 &#8230; <a href="http://www.kinusati.net/2010/07/04/openldap-2-4%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%8b%e3%83%b3%e3%82%b0%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>OpenLDAP 2.4のチューニングについて調査していたら、日本LDAPユーザ会にいい資料がありました。</p>
<p><a title="doc:osc2010_tokyo_spring.pdf" href="http://www.ldap.jp/_media/doc/osc2010_tokyo_spring.pdf?id=doc&amp;cache=cache">さあそ の先へ、OpenLDAPパフォーマンスチューニング</a></p>
<p>これは、便利。早速参考にさせて頂きます。</p>
<p>ところで、LDAPの負荷をかけるツールには私の知る限り二種類あります。</p>
<ul>
<li><a href="http://www.slamd.com/">SLAMD</a></li>
<li><a href="http://jakarta.apache.org/jmeter/">Apache JMeter</a> の LDAP Extended Request/LDAPリクエスト</li>
</ul>
<p>どっちがいいんですかね。SLAMD使ったこと無いからよくわからんな・・・またいつか調べましょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kinusati.net/2010/07/04/openldap-2-4%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%8b%e3%83%b3%e3%82%b0%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.kinusati.net/2010/07/04/openldap-2-4%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%8b%e3%83%b3%e3%82%b0%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/" />
	</item>
	</channel>
</rss>

