<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>mizzy.org: Category linux</title>
    <link>http://blog.mizzy.org/articles/category/linux</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>puppet-mode.el &#12398;&#12497;&#12483;&#12481;</title>
      <description>&lt;p&gt;Puppet &#12391;&#21516;&#12376;&#12479;&#12452;&#12503;&#12398;&#12522;&#12477;&#12540;&#12473;&#12434;&#22823;&#37327;&#12395;&#35352;&#36848;&#12377;&#12427;&#26178;&#12395;&#12399;&#12289;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;package { sudo:
  ensure =&amp;gt; latest
}

package { ntp:
  ensure =&amp;gt; latest
}

package { ssh:
  ensure =&amp;gt; latest
}
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12394;&#12435;&#12390;&#26360;&#12367;&#12398;&#12399;&#12384;&#12427;&#12356;&#12398;&#12391;&#12289;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;package {
  sudo:
    ensure =&amp;gt; latest;
  ntp:
    ensure =&amp;gt; latest;
  ssh:
    ensure =&amp;gt; latest;
}
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12392;&#26360;&#12365;&#12383;&#12356;&#12398;&#12391;&#12377;&#12364;&#12289;Emacs + &lt;a href="https://reductivelabs.com/svn/puppet/trunk/ext/emacs/puppet-mode.el"&gt;puppet-mode.el&lt;/a&gt; &#12391;&#12399;&#12289;&#24460;&#32773;&#12415;&#12383;&#12356;&#12394;&#26360;&#12365;&#26041;&#12384;&#12392;&#12289;&#12452;&#12531;&#12487;&#12531;&#12488;&#12364;&#24847;&#22259;&#12375;&#12383;&#36890;&#12426;&#12395;&#12394;&#12425;&#12394;&#12367;&#12390;&#12289;&#12452;&#12521;&#12387;&#12392;&#12365;&#12390;&#12497;&#12483;&#12481;&#26360;&#12356;&#12383;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;=== puppet-mode.el
==================================================================
--- puppet-mode.el      (revision 1800)
+++ puppet-mode.el      (local)
@@ -106,7 +106,9 @@
                  (progn
                     (setq cur-indent (- (current-indentation) 2))
                    (setq not-indented nil))
-               (setq cur-indent (- (current-indentation) 2))))
+               (setq cur-indent (- (current-indentation) 2)))
+              (if (looking-at "^.*;")
+                  (setq cur-indent (- cur-indent 2))))
            (if (&amp;lt; cur-indent 0)     ; We can't indent past the left margin
                (setq cur-indent 0)))
        (save-excursion
@@ -125,6 +127,18 @@
                    (setq cur-indent (+ (current-indentation) 2))
                    (setq not-indented nil))
                (if (bobp)
+                   (setq not-indented nil)))
+             (if (looking-at "^.*:\s*$")
+                 (progn
+                   (setq cur-indent (+ (current-indentation) 2))
+                   (setq not-indented nil))
+               (if (bobp)
+                   (setq not-indented nil)))
+             (if (looking-at "^.*;")
+                 (progn
+                    (setq cur-indent (- (current-indentation) 2))
+                   (setq not-indented nil))
+               (if (bobp)
                    (setq not-indented nil)))))))
       (if cur-indent
          (indent-line-to cur-indent) 
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#20182;&#12395;&#12418;&#12452;&#12531;&#12487;&#12531;&#12488;&#12414;&#12431;&#12426;&#12398;&#21205;&#20316;&#12391;&#24494;&#22937;&#12394;&#12392;&#12371;&#12429;&#12399;&#12354;&#12427;&#12369;&#12393;&#12289;&#12385;&#12423;&#12387;&#12392;&#12399;&#12414;&#12375;&#12395;&#12394;&#12387;&#12383;&#12290;&#12452;&#12531;&#12487;&#12531;&#12488;&#12414;&#12431;&#12426;&#12398;&#20966;&#29702;&#12391;&#21442;&#32771;&#12395;&#12394;&#12427; emacs-lisp &#12387;&#12390;&#20309;&#12363;&#12394;&#12356;&#12363;&#12394;&#65311;&lt;/p&gt;</description>
      <pubDate>Thu, 30 Aug 2007 00:30:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:4a06fb57-930d-4957-8776-214364d70650</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/08/30/emacs-puppet-mode-patch</link>
      <category>linux</category>
    </item>
    <item>
      <title>Trac &#12398; SearchHyperEstraierPlugin &#12434; Trac 0.10.x &#12391;&#21205;&#12363;&#12377;&#12497;&#12483;&#12481;</title>
      <description>&lt;p&gt;&lt;a href="http://weekbuild.sakura.ne.jp/trac/wiki/TracDoc/SearchHyperEstraierPlugin"&gt;SearchHyperEstraierPlugin&lt;/a&gt; &#12364;&#12289;Trac 0.10.x &#12392;&#12356;&#12358;&#12363;&#12289;&#12358;&#12385;&#12398;&#29872;&#22659;&#12391;&#21205;&#12363;&#12394;&#12356;&#12398;&#12391;&#12289;&#12497;&#12483;&#12481;&#26360;&#12356;&#12383;&#12290;&#21021; Python &#12503;&#12525;&#12464;&#12521;&#12511;&#12531;&#12464;&#12290;&#65288;&#12392;&#12356;&#12358;&#12411;&#12393;&#12398;&#12418;&#12398;&#12376;&#12419;&#12394;&#12356;&#12369;&#12393;&#12290;&#65289;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
=== searchhyperestraier/searchhyperestraier.py
==================================================================
--- searchhyperestraier/searchhyperestraier.py    (revision 892)
+++ searchhyperestraier/searchhyperestraier.py    (local)
@@ -2,8 +2,9 @@
 # SearchRepositoryWithNamazu plugin

 from trac.core import *
-from trac.Search import ISearchSource, query_to_sql, shorten_result
+from trac.Search import ISearchSource, shorten_result
 from trac.util import NaivePopen
+from trac.util.text import to_unicode
 from StringIO import StringIO
 import urllib
 import time
@@ -44,9 +45,9 @@
         browse_trac = self.env.config.get('searchhyperestraier', 'browse_trac','enabled')

-        cmdline = "%s %s %s %s" % (estcmd_path,estcmd_arg,index_path,unicode(query,'utf-8').encode(estcmd_encode))
+        cmdline = "%s %s %s %s" % (estcmd_path,estcmd_arg,index_path,' '.join(query))
         self.log.debug('SearchHyperEstraier:%s' % cmdline)
-        np = NaivePopen(cmdline)
+        np = NaivePopen( cmdline.encode(estcmd_encode) )
         #self.log.debug('Result:%s' % unicode(np.out,'utf-8').encode('mbcs'))
         #self.log.debug('Result:%s' % np.out)
         if np.errorlevel or np.err:
@@ -74,7 +75,7 @@
             attrelem_array = element.getElementsByTagName("attribute")
             for attrelem in attrelem_array:
                 attr_name = attrelem.getAttribute("name")
-                attr_value = unicode(attrelem.getAttribute("value")).encode('utf-8')
+                attr_value = to_unicode(attrelem.getAttribute("value"))
                 #URL&#12392;&#12479;&#12452;&#12488;&#12523;&#12434;&#29983;&#25104;
                 if attr_name == "_lreal":
                     attr_value=attr_value[len(replace_left):].replace("\\","/")
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12456;&#12521;&#12540;&#12364;&#20986;&#12427;&#12383;&#12403;&#12395;&#12289;&#36969;&#24403;&#12395;&#12356;&#12376;&#12387;&#12390;&#12383;&#12425;&#21205;&#12356;&#12383;&#12289;&#12392;&#12356;&#12358;&#24863;&#12376;&#12290;&#12394;&#12398;&#12391;&#12289;&#12371;&#12435;&#12394;&#12435;&#12391;&#12356;&#12356;&#12398;&#12363;&#12399;&#12424;&#12367;&#20998;&#12363;&#12425;&#12394;&#12356;&#12290;&lt;/p&gt;</description>
      <pubDate>Thu, 09 Aug 2007 03:03:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:caf9c890-84e5-43df-baec-aa809c1324ce</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/08/09/SearchHyperEstraierPlugin</link>
      <category>program</category>
      <category>linux</category>
    </item>
    <item>
      <title>Pushmi &#12388;&#12363;&#12387;&#12390;&#12414;&#12377; &amp;amp; &#25216;&#34899;&#32773;&#21215;&#38598;&#20013; at &#31119;&#23713;</title>
      <description>&lt;p&gt;&lt;a href="http://www.paperboy.co.jp/"&gt;&#24330;&#31038;&lt;/a&gt; &#12399;&#26481;&#20140;&#12392;&#31119;&#23713;&#12395;&#12458;&#12501;&#12451;&#12473;&#12364;&#12354;&#12426;&#12289;&#12381;&#12428;&#12382;&#12428;&#12398;&#25312;&#28857;&#12395; Subversion + Trac &#29872;&#22659;&#12434;&#27083;&#31689;&#12375;&#12289;&lt;a href="http://openvpn.net/"&gt;OpenVPN&lt;/a&gt; &#12395;&#12424;&#12426; &lt;span class="caps"&gt;VPN&lt;/span&gt; &#25509;&#32154;&#12375;&#12390;&#12362;&#20114;&#12356;&#12398;&#38283;&#30330;&#29366;&#27841;&#12434;&#20844;&#38283;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;&#12469;&#12540;&#12499;&#12473;&#32097;&#12415;&#12398;&#38283;&#30330;&#12399;&#22522;&#26412;&#30340;&#12395;&#12289;&#26481;&#20140;&#12399;&#26481;&#20140;&#12289;&#31119;&#23713;&#12399;&#31119;&#23713;&#12391;&#23436;&#32080;&#12375;&#12390;&#12356;&#12427;&#12398;&#12391;&#12289;&#12371;&#12398;&#26041;&#24335;&#12391;&#21839;&#38988;&#12399;&#12394;&#12356;&#12398;&#12391;&#12377;&#12364;&#12289;&#12469;&#12540;&#12496;&#31649;&#29702;&#38306;&#36899;&#12398;&#12473;&#12463;&#12522;&#12503;&#12488;&#12394;&#12435;&#12363;&#12399;&#12289;&#26481;&#20140;&#12392;&#31119;&#23713;&#12391;&#20849;&#36890;&#12377;&#12427;&#12418;&#12398;&#12364;&#22810;&#12356;&#12383;&#12417;&#12289;&#21029;&#12293;&#12398; &lt;span class="caps"&gt;SVN&lt;/span&gt; &#12522;&#12509;&#12472;&#12488;&#12522;&#12391;&#31649;&#29702;&#12373;&#12428;&#12390;&#12427;&#12392;&#19981;&#20415;&#12394;&#12435;&#12391;&#12377;&#12424;&#12397;&#12290;&#12363;&#12392;&#12356;&#12387;&#12390;&#12289;&#12393;&#12385;&#12425;&#12363;&#12398;&#25312;&#28857;&#12384;&#12369;&#12375;&#12363;&#12522;&#12509;&#12472;&#12488;&#12522;&#12364;&#12394;&#12356;&#12392;&#12289;VPN &#12398;&#38556;&#23475;&#30330;&#29983;&#26178;&#12395;&#12289;&#12522;&#12509;&#12472;&#12488;&#12522;&#12398;&#12394;&#12356;&#25312;&#28857;&#12363;&#12425;&#12399;&#12414;&#12387;&#12383;&#12367;&#12450;&#12463;&#12475;&#12473;&#12364;&#12391;&#12365;&#12394;&#12356;&#12289;&#12392;&#12356;&#12358;&#22256;&#12387;&#12383;&#12371;&#12392;&#12395;&#12394;&#12387;&#12390;&#12375;&#12414;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;


	&lt;p&gt;&#12381;&#12371;&#12391;&#12289;SVN &#12522;&#12509;&#12472;&#12488;&#12522;&#12524;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12484;&#12540;&#12523; &lt;a href="http://search.cpan.org/dist/Pushmi/lib/Pushmi.pm"&gt;Pushmi&lt;/a&gt; &#12434;&#23566;&#20837;&#12375;&#12390;&#12415;&#12414;&#12375;&#12383;&#12290;&#35443;&#32048;&#12399; &lt;a href="http://video.google.com/videoplay?docid=-7181301487103062288&amp;#38;q=yapc+asia+2007&amp;#38;total=46&amp;#38;start=0&amp;#38;num=50&amp;#38;so=1&amp;#38;type=search&amp;#38;plindex=13"&gt;&lt;span class="caps"&gt;YAPC&lt;/span&gt;::Asia &#12391;&#12398; &#20316;&#32773; Cl Kao &#12395;&#12424;&#12427;&#12473;&#12500;&#12540;&#12481;&#21205;&#30011;&lt;/a&gt; &#12434;&#35211;&#12390;&#38914;&#12367;&#12392;&#12375;&#12390;&#12289;&#12371;&#12371;&#12391;&#12399;&#34892;&#12387;&#12383;&#35373;&#23450;&#12395;&#12388;&#12356;&#12390;&#12513;&#12514;&#12434;&#27531;&#12375;&#12390;&#12362;&#12365;&#12414;&#12377;&#12290;&#12411;&#12392;&#12435;&#12393; perldoc Pushmi &#12398;&#20869;&#23481;&#12392;&#21516;&#12376;&#12391;&#12377;&#12364;&#12290;&lt;/p&gt;


	&lt;p&gt;&#12414;&#12378;&#24403;&#28982; Pushmi &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12364;&#24517;&#35201;&#12391;&#12377;&#12290;&#12371;&#12428;&#12398;&#25163;&#38918;&#12399;&#30465;&#30053;&#12290;&#12414;&#12383;&#12289;&#12424;&#12426;&#33391;&#12356;&#12450;&#12488;&#12511;&#12483;&#12463;&#12525;&#12483;&#12463;&#23455;&#29694;&#12398;&#12383;&#12417;&#12395; &lt;a href="http://www.danga.com/memcached/"&gt;memcached&lt;/a&gt; &#12434;&#21033;&#29992;&#12375;&#12390;&#12356;&#12427;&#12289;&#12392;&#12356;&#12358;&#12371;&#12392;&#12394;&#12398;&#12391;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12390;&#12362;&#12365;&#12414;&#12377;&#12290;&#12371;&#12428;&#12418;&#25163;&#38918;&#12399;&#30465;&#30053;&#12290;&lt;/p&gt;


	&lt;p&gt;memcached &#12434;&#36215;&#21205;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;$ sudo /usr/bin/memcached -p 8123 -dP /var/run/memcached.pid -u nobody
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;/etc/pushmi.conf &#12434;&#35373;&#23450;&#12375;&#12414;&#12377;&#12290;&#24330;&#31038;&#12398;&#29872;&#22659;&#12391;&#12399; memcached &#12398;&#12509;&#12540;&#12488;&#12398;&#12415;&#25351;&#23450;&#12375;&#12390;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;authproxy_port: 8123
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12511;&#12521;&#12540;&#12522;&#12509;&#12472;&#12488;&#12522;&#12434;&#20316;&#25104;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;$ pushmi mirror /var/db/my-local-mirror http://master.repository/svn
Mirror initialized.
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12511;&#12521;&#12540;&#12522;&#12509;&#12472;&#12488;&#12522;&#12392;&#12510;&#12473;&#12479;&#12540;&#12522;&#12509;&#12472;&#12488;&#12522;&#12434;&#21516;&#26399;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;$ pushmi sync /var/db/my-local-mirror
Retrieving log information from 1 to 62
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12511;&#12521;&#12540;&#12522;&#12509;&#12472;&#12488;&#12522;&#12399;&#12289;svnadmin create &#12391;&#20316;&#25104;&#12377;&#12427;&#12398;&#12392;&#21516;&#27096;&#12394;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12289;&#12501;&#12449;&#12452;&#12523;&#27083;&#36896;&#12395;&#12394;&#12387;&#12390;&#12414;&#12377;&#12364;&#12289;Pushmi &#29992;&#12398; pre-commit &#12473;&#12463;&#12522;&#12503;&#12488;&#12392; post-commit &#12473;&#12463;&#12522;&#12503;&#12488;&#12364;&#32622;&#12363;&#12428;&#12390;&#12356;&#12427;&#12289;&#12392;&#12356;&#12358;&#12392;&#12371;&#12429;&#12364;&#30064;&#12394;&#12426;&#12414;&#12377;&#12290;&lt;/p&gt;


	&lt;p&gt;pre-commit &#12391;&#12399;&#20197;&#19979;&#12398;&#27096;&#12394;&#12467;&#12510;&#12531;&#12489;&#12364;&#23455;&#34892;&#12373;&#12428;&#12289;&#12511;&#12521;&#12540;&#12522;&#12509;&#12472;&#12488;&#12522;&#12395;&#12467;&#12511;&#12483;&#12488;&#12373;&#12428;&#12383;&#20869;&#23481;&#12434;&#12289;&#12510;&#12473;&#12479;&#12540;&#12522;&#12509;&#12472;&#12488;&#12522;&#12395;&#12467;&#12511;&#12483;&#12488;&#12375;&#12395;&#34892;&#12365;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;/usr/bin/pushmi runhook $1 --txnname $2
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;post-commit &#12391;&#12399;&#20197;&#19979;&#12398;&#27096;&#12394;&#12467;&#12510;&#12531;&#12489;&#12364;&#23455;&#34892;&#12373;&#12428;&#12289;&#12511;&#12521;&#12540;&#12392;&#12510;&#12473;&#12479;&#12540;&#12398;&#25972;&#21512;&#24615;&#12434;&#30906;&#35469;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;/usr/bin/pushmi verify $1 --revision $2
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Apache + WebDAV &#12391; &lt;span class="caps"&gt;SVN&lt;/span&gt; &#12522;&#12509;&#12472;&#12488;&#12522;&#12395;&#12450;&#12463;&#12475;&#12473;&#12377;&#12427;&#12383;&#12417;&#12395;&#12289;&#20197;&#19979;&#12398;&#27096;&#12394;&#35373;&#23450;&#12434; Apache &#12391;&#34892;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;&amp;lt;Location /svn/server&amp;gt;
  PerlSetVar SVNPath /var/db/my-local-mirror
  PerlSetVar Pushmi /usr/bin/pushmi
  PerlSetVar PushmiConfig /etc/pushmi.conf
  &amp;lt;LimitExcept GET PROPFIND OPTIONS REPORT&amp;gt;
    AuthName "mirrored private area" 
    AuthType Basic
    Require valid-user
    AuthLDAPURL ldap://localhost:389/ou=people,o=paperboy?uid?sub?(objectclass=*)
    PerlAuthenHandler Pushmi::Apache::AuthCommit
  &amp;lt;/LimitExcept&amp;gt;
&amp;lt;/Location&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#35373;&#23450;&#35211;&#12390;&#20998;&#12363;&#12427;&#12392;&#24605;&#12356;&#12414;&#12377;&#12364;&#12289;mod_perl &#12434;&#21033;&#29992;&#12375;&#12390;&#12356;&#12390;&#12289;Apche2 + mod_perl &#12398;&#29872;&#22659;&#12364;&#24517;&#35201;&#12391;&#12377;&#12290;Apache &#12399; 2.0 &#31995;&#12391;&#12418; 2.2 &#31995;&#12391;&#12418;&#22823;&#19976;&#22827;&#12394;&#12424;&#12358;&#12391;&#12377;&#12290;&#24330;&#31038;&#12391;&#12399; 2.0 &#31995;&#12434;&#21033;&#29992;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;


	&lt;p&gt;&#29305;&#12395;&#12509;&#12452;&#12531;&#12488;&#12392;&#12394;&#12427;&#12398;&#12399;&#12289;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;PerlAuthenHandler Pushmi::Apache::AuthCommit
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12398;&#37096;&#20998;&#12391;&#12289;&#35469;&#35388;&#12391;&#28193;&#12373;&#12428;&#12383;&#12518;&#12540;&#12470;&#21517;&#12289;&#12497;&#12473;&#12527;&#12540;&#12489;&#12434;&#12371;&#12398;&#12514;&#12472;&#12517;&#12540;&#12523;&#12391; memcached &#12395;&#12461;&#12515;&#12483;&#12471;&#12517;&#12375;&#12390;&#12362;&#12365;&#12289;&#12510;&#12473;&#12479;&#12522;&#12509;&#12472;&#12488;&#12522;&#12408;&#12398;&#12467;&#12511;&#12483;&#12488;&#26178;&#12398;&#35469;&#35388;&#12395;&#21033;&#29992;&#12375;&#12414;&#12377;&#12290;Apache 2.2 &#31995;&#12398;&#22580;&#21512;&#12395;&#12399;&#12289;&#20197;&#19979;&#12398;&#27096;&#12395;&#35373;&#23450;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;AuthBasicProvider Pushmi::Apache::RelayProvider
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#12371;&#12398;&#29366;&#24907;&#12391;&#12399;&#12289;&#12511;&#12521;&#12540;&#12408;&#12398;&#12467;&#12511;&#12483;&#12488;&#12399;&#21363;&#12510;&#12473;&#12479;&#12540;&#12395;&#21453;&#26144;&#12373;&#12428;&#12414;&#12377;&#12364;&#12289;&#12510;&#12473;&#12479;&#12540;&#12408;&#12398;&#12467;&#12511;&#12483;&#12488;&#12399;&#12511;&#12521;&#12540;&#12395;&#21453;&#26144;&#12373;&#12428;&#12414;&#12379;&#12435;&#12398;&#12391;&#12289;&#20197;&#19979;&#12398;&#27096;&#12394; cron &#35373;&#23450;&#12434;&#34892;&#12356;&#12289;5&#20998;&#12362;&#12365;&#12395;&#12510;&#12473;&#12479;&#12540;&#12392;&#12511;&#12521;&#12540;&#12434;&#21516;&#26399;&#12377;&#12427;&#12424;&#12358;&#12395;&#12375;&#12414;&#12377;&#12290;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;*/5 * * * * /usr/bin/pushmi sync --nowait /var/db/my-local-mirror
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&#20170;&#12398;&#12392;&#12371;&#12429;&#12371;&#12428;&#12391;&#21839;&#38988;&#12394;&#12367;&#21205;&#12356;&#12390;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;


	&lt;p&gt;&#35441;&#22793;&#12431;&#12426;&#12414;&#12375;&#12390;&#12289;&#24330;&#31038;&#31119;&#23713;&#25903;&#31038;&#12391;&#12399;&#12289;&lt;a href="http://tenshoku.mynavi.jp/jobset/index.cfm?fuseaction=mrjt_Jobinfo_form&amp;#38;client_id=87984&amp;#38;plan_id=1&amp;#38;contract_id=1&amp;#38;job_seq_no=1&amp;#38;ty=0&amp;#38;rm=0"&gt;&#12503;&#12525;&#12464;&#12521;&#12510;&lt;/a&gt; &#12392; &lt;a href="http://tenshoku.mynavi.jp/jobset/index.cfm?fuseaction=mrjt_Jobinfo_form&amp;#38;client_id=87984&amp;#38;plan_id=1&amp;#38;contract_id=1&amp;#38;job_seq_no=2&amp;#38;ty=0&amp;#38;rm=0"&gt;&#12469;&#12540;&#12496;&#12456;&#12531;&#12472;&#12491;&#12450;&lt;/a&gt; &#12434;&#21215;&#38598;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;Pushmi &#12434;&#23455;&#25126;&#12391;&#20351;&#12387;&#12390;&#12415;&#12383;&#12356;&#65281;&#12392;&#12356;&#12358;&#26041;&#12399;&#12380;&#12402;&#12290;&#12513;&#12460;&#12493;&#22899;&#23376;&#12503;&#12525;&#12464;&#12521;&#12510;&#12418;&#12356;&#12414;&#12377;&#12424;&#12290;&#65288;&#26481;&#20140;&#26412;&#31038;&#12395;&#12418;&#12356;&#12414;&#12377;&#12290;&#20154;&#22971;&#12391;&#12377;&#12364;&#12290;&#65289;&lt;/p&gt;</description>
      <pubDate>Fri, 03 Aug 2007 01:52:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:6d2d583e-23c3-4f6d-92a5-8de8d5bfa6d2</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/08/03/pushmi</link>
      <category>program</category>
      <category>linux</category>
    </item>
    <item>
      <title>mod_dosdetector &#12434; Apache 2.0 &#31995;&#12391;&#21205;&#12363;&#12377;&#12497;&#12483;&#12481;</title>
      <description>&lt;p&gt;&lt;a href="http://sourceforge.net/projects/moddosdetector/"&gt;mod_dosdetecter 0.2&lt;/a&gt; &#12434; Apache 2.0 &#31995;&#12391;&#21205;&#12363;&#12377;&#12497;&#12483;&#12481;&#12434;&#26360;&#12356;&#12390;&#12415;&#12383;&#12290;&#20462;&#27491;&#12509;&#12452;&#12531;&#12488;&#12399;&#12289;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;/usr/local/apache/include/pcreposix.h:41: error: redeclaration of enumerator `REG_BADBR&amp;#8217; &#12392;&#12356;&#12387;&#12383;&#12456;&#12521;&#12540;&#12364;&#22823;&#37327;&#12395;&#20986;&#12390;&#12367;&#12427;&#12364;&#12289;&#12371;&#12428;&#12399; /usr/include/regex.h &#12392;&#23459;&#35328;&#12364;&#37325;&#35079;&#12375;&#12390;&#12356;&#12427;&#12383;&#12417;&#12290;&#12394;&#12398;&#12391;&#12289;#include &amp;lt;regex.h&amp;gt; &#12399;&#21066;&#38500;&#12290;&lt;/li&gt;
		&lt;li&gt;ap_regmatch_t &#27083;&#36896;&#20307;&#12392; ap_regex_t &#27083;&#36896;&#20307;&#12399; 2.2 &#31995;&#12395;&#12398;&#12415;&#23384;&#22312;&#12375;&#12289;2.0 &#31995;&#12395;&#12399;&#23384;&#22312;&#12375;&#12394;&#12356;&#12290;&#12394;&#12398;&#12391;&#12381;&#12428;&#12382;&#12428;&#12289;regmatch_t, regex_t &#12395;&#32622;&#12365;&#25563;&#12360;&#12427;&#12290;&lt;/li&gt;
		&lt;li&gt;apr_shm_remove &#12399; 2.2&#31995; &#12391;&#12375;&#12363;&#20351;&#12360;&#12394;&#12356;&#12398;&#12391;&#12289;&#12381;&#12398;&#12383;&#12417;&#12398;&#20462;&#27491;&#12434; &lt;a href="http://mod-fcgid.cvs.sourceforge.net/mod-fcgid/mod_fcgid/arch/unix/fcgid_proctbl_unix.c?r1=1.7&amp;#38;r2=1.8"&gt;mod_fcgid &#12398;&#12477;&#12540;&#12473;&lt;/a&gt; &#12363;&#12425;&#12497;&#12463;&#12427;&#12290;&lt;/li&gt;
		&lt;li&gt;set_ignore_contenttype_config() &#12364;&#12475;&#12464;&#12501;&#12457;&#12427;&#12398;&#12391;&#20462;&#27491;&lt;/li&gt;
	&lt;/ul&gt;


&lt;pre&gt;&lt;code&gt;=== mod_dosdetector.c
==================================================================
--- mod_dosdetector.c    (revision 804)
+++ mod_dosdetector.c    (local)
@@ -28,7 +28,6 @@
 #include &amp;lt;arpa/inet.h&amp;gt;
 //#include &amp;lt;netinet/in.h&amp;gt;
 #include &amp;lt;time.h&amp;gt;
-#include &amp;lt;regex.h&amp;gt;
 #include "httpd.h" 
 #include "http_config.h" 
 #include "http_request.h" 
@@ -41,6 +40,7 @@
 #include "apr_strings.h" 
 #include "apr_shm.h" 
 #include "apr_thread_mutex.h" 
+#include "apr_version.h" 

 //#define _DEBUG

@@ -102,7 +102,90 @@
 static apr_global_mutex_t *lock = NULL;
 static apr_shm_t *shm = NULL;

+/* apr version 0.x not support apr_shm_remove, I have to copy it from apr version 1.x */
+#if (APR_MAJOR_VERSION &amp;lt; 1)
+#ifdef HAVE_SYS_MMAN_H
+#include &amp;lt;sys/mman.h&amp;gt;
+#endif
+#ifdef HAVE_SYS_IPC_H
+#include &amp;lt;sys/ipc.h&amp;gt;
+#endif
+#ifdef HAVE_SYS_MUTEX_H
+#include &amp;lt;sys/mutex.h&amp;gt;
+#endif
+#ifdef HAVE_SYS_SHM_H
+#include &amp;lt;sys/shm.h&amp;gt;
+#endif
+#if !defined(SHM_R)
+#define SHM_R 0400
+#endif
+#if !defined(SHM_W)
+#define SHM_W 0200
+#endif
+#ifdef HAVE_SYS_FILE_H
+#include &amp;lt;sys/file.h&amp;gt;
+#endif

+static apr_status_t apr_shm_remove(const char *filename, apr_pool_t * pool)
+{
+#if APR_USE_SHMEM_SHMGET
+    apr_status_t status;
+    apr_file_t *file;
+    key_t shmkey;
+    int shmid;
+#endif
+
+#if APR_USE_SHMEM_MMAP_TMP
+    return apr_file_remove(filename, pool);
+#endif
+#if APR_USE_SHMEM_MMAP_SHM
+    if (shm_unlink(filename) == -1) {
+        return errno;
+    }
+    return APR_SUCCESS;
+#endif
+#if APR_USE_SHMEM_SHMGET
+    /* Presume that the file already exists; just open for writing */
+    status = apr_file_open(&amp;#38;file, filename, APR_WRITE,
+                           APR_OS_DEFAULT, pool);
+    if (status) {
+        return status;
+    }
+
+    /* ftok() (on solaris at least) requires that the file actually
+     * exist before calling ftok(). */
+    shmkey = ftok(filename, 1);
+    if (shmkey == (key_t) - 1) {
+        goto shm_remove_failed;
+    }
+
+    apr_file_close(file);
+
+    if ((shmid = shmget(shmkey, 0, SHM_R | SHM_W)) &amp;lt; 0) {
+        goto shm_remove_failed;
+    }
+
+    /* Indicate that the segment is to be destroyed as soon
+     * as all processes have detached. This also disallows any
+     * new attachments to the segment. */
+    if (shmctl(shmid, IPC_RMID, NULL) == -1) {
+        goto shm_remove_failed;
+    }
+    return apr_file_remove(filename, pool);
+
+  shm_remove_failed:
+    status = errno;
+    /* ensure the file has been removed anyway. */
+    apr_file_remove(filename, pool);
+    return status;
+#endif
+
+    /* No support for anonymous shm */
+    return APR_ENOTIMPL;
+}
+#endif                            /* APR_MAJOR_VERSION&amp;lt;1 */
+
+
 static apr_status_t cleanup_shm(void *not_used)
 {
     ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL, "Notice: cleaning up shared memory");
@@ -261,8 +344,8 @@

     address = r-&amp;gt;connection-&amp;gt;remote_ip;

-    ap_regmatch_t regmatch[AP_MAX_REG_MATCH];
-    ap_regex_t **contenttype_regexp = (ap_regex_t **) cfg-&amp;gt;contenttype_regexp-&amp;gt;elts;
+    regmatch_t regmatch[AP_MAX_REG_MATCH];
+    regex_t **contenttype_regexp = (regex_t **) cfg-&amp;gt;contenttype_regexp-&amp;gt;elts;
     for (i = 0; i &amp;lt; cfg-&amp;gt;contenttype_regexp-&amp;gt;nelts; i++) {
         if(!ap_regexec(contenttype_regexp[i], content_type, AP_MAX_REG_MATCH, regmatch, 0)){
             //ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, 0, "ignoring content-type: %s", content_type);
@@ -390,15 +473,13 @@
                      const char *arg)
 {
     dosdetector_dir_config *cfg = (dosdetector_dir_config *) mconfig;
-    char **ignore_contenttype = (char **) cfg-&amp;gt;ignore_contenttype-&amp;gt;elts;
+    regex_t *regexp;
+    char *type;

-    *(char **) apr_array_push(cfg-&amp;gt;ignore_contenttype) = apr_pstrdup(parms-&amp;gt;pool, arg);
-
-    int i;
-    regex_t *regexp;
-    for (i = 0; i &amp;lt; cfg-&amp;gt;ignore_contenttype-&amp;gt;nelts; i++) {
-        regexp = (regex_t *)ap_pregcomp(parms-&amp;gt;pool, (char *)ignore_contenttype[i], REG_EXTENDED|REG_ICASE);
-        *(regex_t **)apr_array_push(cfg-&amp;gt;contenttype_regexp) = regexp;
+    while (*arg) {
+      type = ap_getword_conf(parms-&amp;gt;pool, &amp;#38;arg);
+      regexp = ap_pregcomp(parms-&amp;gt;pool, type, REG_EXTENDED|REG_ICASE);
+      *(regex_t **)apr_array_push(cfg-&amp;gt;contenttype_regexp) = regexp;
     }

     return NULL;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;2.0 &#31995;&#12391;&#12418; 2.2 &#31995;&#12391;&#12418;&#12393;&#12387;&#12385;&#12391;&#12418;&#21205;&#12367;&#12424;&#12358;&#12395;&#20462;&#27491;&#12375;&#12383;&#26041;&#12364;&#12356;&#12356;&#12435;&#12384;&#12429;&#12358;&#12369;&#12393;&#12289;&#12381;&#12428;&#12399;&#12414;&#12383;&#20170;&#24230;&#12290;&lt;/p&gt;</description>
      <pubDate>Thu, 26 Jul 2007 22:32:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:a856d6cd-83df-4db2-ae82-161db221c6ef</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/07/26/mod_dosdetector_for_apache_20</link>
      <category>linux</category>
    </item>
    <item>
      <title>Puppet &#12398;&#36899;&#36617;&#12399;&#12376;&#12417;&#12414;&#12375;&#12383;</title>
      <description>&lt;p&gt;&lt;a href="http://gihyo.jp/admin/serial/01/puppet"&gt;gihyo.jp &#12391; Puppet &#12395;&#38306;&#12377;&#12427;&#36899;&#36617;&#12434;&#12399;&#12376;&#12417;&#12414;&#12375;&#12383;&#12290;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&#31532;1&#22238;&#30446;&#12399;&#12289;&#12471;&#12473;&#12486;&#12512;&#31649;&#29702;&#12398;&#33258;&#21205;&#21270;&#12364;&#12394;&#12380;&#24517;&#35201;&#12394;&#12398;&#12363;&#12289;&#12392;&#12356;&#12358;&#12371;&#12392;&#12392;&#12289;Puppet &#12364;&#12393;&#12358;&#12356;&#12387;&#12383;&#12484;&#12540;&#12523;&#12394;&#12398;&#12363;&#12289;&#12381;&#12398;&#27010;&#35201;&#12395;&#12388;&#12356;&#12390;&#26360;&#12356;&#12390;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&#36899;&#36617;&#12434;&#19968;&#36890;&#12426;&#35501;&#12417;&#12400;&#12289;Puppet &#12434;&#12471;&#12473;&#12486;&#12512;&#31649;&#29702;&#12398;&#29694;&#22580;&#12391;&#23455;&#36341;&#12377;&#12427;&#12383;&#12417;&#12398;&#21313;&#20998;&#12394;&#30693;&#35672;&#12364;&#24471;&#12425;&#12428;&#12427;&#12289;&#12392;&#12356;&#12387;&#12383;&#12418;&#12398;&#12434;&#30446;&#25351;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;&lt;/p&gt;

&lt;p&gt;&#20998;&#12363;&#12426;&#12395;&#12367;&#12356;&#12394;&#12393;&#12372;&#24847;&#35211;&#12372;&#12374;&#12356;&#12414;&#12375;&#12383;&#12425;&#12289;&#12380;&#12402;&#12362;&#30693;&#12425;&#12379;&#12367;&#12384;&#12373;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;3&#36913;&#38291;&#27598;&#12395;&#26356;&#26032;&#20104;&#23450;&#12391;&#12377;&#12290;&lt;/p&gt;</description>
      <pubDate>Sat, 30 Jun 2007 15:10:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:b217d2b9-1ee7-4a60-b84e-5942fc795cdf</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/06/30/puppet-on-gihyo</link>
      <category>linux</category>
      <trackback:ping>http://blog.mizzy.org/articles/trackback/518</trackback:ping>
    </item>
    <item>
      <title>write &#12399;&#12518;&#12540;&#12470;&#12503;&#12525;&#12475;&#12473;&#12434;&#24453;&#12383;&#12379;&#12394;&#12356;&#65311;&#12398;&#31572;&#12360;</title>
      <description>&lt;p&gt;&lt;a href="http://blog.mizzy.org/articles/2007/05/23/linux-disk-io-00"&gt;&#21069;&#22238;&#12398;&#12456;&#12531;&#12488;&#12522;&lt;/a&gt; &#12395;&#12388;&#12356;&#12390;&#12289;naoya &#12373;&#12435;&#12363;&#12425;&lt;a href="http://d.hatena.ne.jp/naoya/20070523/1179938637"&gt;&#20693;&#12398;&#26399;&#24453;&#20197;&#19978;&#12398;&#32032;&#26228;&#12425;&#12375;&#12356;&#22238;&#31572;&lt;/a&gt;&#12434;&#38914;&#12365;&#12414;&#12375;&#12383;&#12290;&#24863;&#35613;&#24863;&#35613;&#12391;&#12377;&#12290;&lt;/p&gt;

&lt;p&gt;&#35443;&#32048;&#12399;&#19978;&#35352;&#12456;&#12531;&#12488;&#12522;&#12434;&#12376;&#12387;&#12367;&#12426;&#35501;&#12435;&#12391;&#38914;&#12365;&#12383;&#12356;&#12398;&#12391;&#12377;&#12364;&#12289;&#20693;&#12398;&#30097;&#21839;&#12408;&#12398;&#30452;&#25509;&#12398;&#31572;&#12360;&#12392;&#12394;&#12427;&#12398;&#12364;&#12289;&#12414;&#12392;&#12417;&#12395;&#12354;&#12427;&lt;/p&gt;

&lt;blockquote&gt;
    &lt;ul&gt;
    &lt;li&gt;write &#12399;&#12503;&#12525;&#12475;&#12473;&#12434;&#24453;&#12383;&#12379;&#12394;&#12356;&lt;/li&gt;
    &lt;li&gt;&#12383;&#12384;&#12375;&#26126;&#31034;&#30340;&#12395; sync &#12377;&#12427;&#22580;&#21512;&#12399;&#24453;&#12383;&#12379;&#12427;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&#12391;&#12377;&#12397;&#12290;&#12300;write &#12399;&#12503;&#12525;&#12475;&#12473;&#12434;&#24453;&#12383;&#12379;&#12394;&#12356;&#12301;&#12364;&#27491;&#12375;&#12356;&#12289;&#12392;&#12356;&#12358;&#12398;&#12399; naoya &#12373;&#12435;&#12398;&#35299;&#35500;&#12434;&#35501;&#12435;&#12391;&#32013;&#24471;&#12375;&#12414;&#12375;&#12383;&#12290;&#12503;&#12525;&#12475;&#12473;&#12364; write &#12377;&#12427;&#12392;&#12356;&#12358;&#12371;&#12392;&#12392;&#12289;&#12381;&#12428;&#12364;&#23455;&#38555;&#12395;&#12487;&#12451;&#12473;&#12463;&#12395;&#26360;&#12365;&#20986;&#12373;&#12428;&#12427;&#12371;&#12392;&#12434;&#12289;&#21306;&#21029;&#12375;&#12394;&#12356;&#12391;&#32771;&#12360;&#12390;&#12356;&#12383;&#12398;&#12364;&#20693;&#12398;&#25943;&#22240;&#12391;&#12377;&#12397;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;&#12371;&#12385;&#12425;&#12398;&#29872;&#22659;&#12391; kjournald &#12420; qmail-queue &#12503;&#12525;&#12475;&#12473;&#12364;&#24453;&#12383;&#12373;&#12428;&#12390;&#12356;&#12383;&#12398;&#12399;&#12289;sync &#12375;&#12390;&#12427;&#12363;&#12425;&#12289;&#12392;&#12356;&#12358;&#12371;&#12392;&#12391;&#12375;&#12383;&#12290;kjournald &#12399;&#30906;&#12363;&#12417;&#12390;&#12356;&#12394;&#12356;&#12398;&#12391;&#12377;&#12364;&#12289;qmail-queue &#12398;&#12477;&#12540;&#12473;&#12398;&#20013;&#12391;&#12399;&#30906;&#12363;&#12395; fsync() &#12364;&#23455;&#34892;&#12373;&#12428;&#12390;&#12356;&#12414;&#12375;&#12383;&#12290;&#32771;&#12360;&#12390;&#12415;&#12428;&#12400;&#24403;&#28982;&#12391;&#12377;&#12424;&#12397;&#12290;&#12472;&#12515;&#12540;&#12490;&#12523;&#12398;&#12513;&#12479;&#12487;&#12540;&#12479;&#12420;&#12513;&#12540;&#12523;&#12461;&#12517;&#12540;&#12394;&#12393;&#12289;&#22823;&#20107;&#12394;&#12487;&#12540;&#12479;&#12434; write &#12375;&#12390; sync &#12375;&#12394;&#12356;&#12394;&#12435;&#12390;&#12371;&#12392;&#12399;&#12354;&#12426;&#24471;&#12394;&#12356;&#12391;&#12375;&#12423;&#12358;&#12375;&#12290;&lt;/p&gt;

&lt;p&gt;&#12394;&#12398;&#12391;&#12289;&lt;a href="http://d.hatena.ne.jp/hirose31/"&gt;id:hirose31&lt;/a&gt;&#12373;&#12435;&#12363;&#12425;&#12398;&#12467;&#12513;&#12531;&#12488;&#12300;fsync(2)&#12398;&#12379;&#12356;&#65311;&#12301;&#12364;&#12378;&#12400;&#12426;&#22238;&#31572;&#12395;&#12394;&#12387;&#12390;&#12356;&#12414;&#12375;&#12383;&#12290;&#12354;&#12426;&#12364;&#12392;&#12358;&#12372;&#12374;&#12356;&#12414;&#12377;&#12290;&#20170;&#24230;&#12459;&#12524;&#12540;&#12362;&#12372;&#12425;&#12379;&#12390;&#12367;&#12384;&#12373;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&#12392;&#12356;&#12358;&#12431;&#12369;&#12391;&#12289;&#12300;write &#12399;&#12518;&#12540;&#12470;&#12503;&#12525;&#12475;&#12473;&#12434;&#24453;&#12383;&#12379;&#12394;&#12356;&#65311;&#12301;&#12399;&#12300;&#24453;&#12383;&#12379;&#12394;&#12356;&#12301;&#12364;&#31572;&#12360;&#12289;&#12392;&#12356;&#12358;&#12371;&#12392;&#12391;&#23436;&#32080;&#12391;&#12377;&#12290;&lt;/p&gt;

&lt;p&gt;&#12354;&#12392;&#12289;&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;&#12392;&#12356;&#12358;&#12371;&#12392;&#12391;&#12377;&#12364; free &#12398;&#32080;&#26524;&#12391;&#12399;&#12289;&#12503;&#12525;&#12475;&#12473;&#12395;&#21106;&#12426;&#24403;&#12390;&#12427;&#12383;&#12417;&#12398;&#12513;&#12514;&#12522;&#12364;&#36275;&#12426;&#12390;&#12427;&#12363;&#12393;&#12358;&#12363;&#12399;&#12431;&#12363;&#12426;&#12414;&#12377;&#12364;&#12289;&#12506;&#12540;&#12472;&#12461;&#12515;&#12483;&#12471;&#12517;&#29992;&#12395;&#12513;&#12514;&#12522;&#12364;&#36275;&#12426;&#12390;&#12427;&#12363;&#12393;&#12358;&#12363;&#12399;&#12431;&#12363;&#12426;&#12414;&#12379;&#12435;&#12290;&lt;/p&gt;
    
    &lt;p&gt;&#23455;&#38555;&#12381;&#12398;&#12469;&#12540;&#12496;&#12540;&#12364;&#20027;&#12394;&#20181;&#20107;&#12391;&#20351;&#12387;&#12390;&#12356;&#12427;&#12487;&#12540;&#12479;&#12399;&#12289;&#21512;&#35336;&#12391;&#12393;&#12398;&#12368;&#12425;&#12356;&#12398;&#12469;&#12452;&#12474;&#12391;&#12375;&#12423;&#12358;&#12290;&#12362;&#12381;&#12425;&#12367;&#12289;&#12461;&#12517;&#12540;&#12395;&#28316;&#12414;&#12387;&#12383;&#12513;&#12540;&#12523;&#12381;&#12398;&#20182; OS &#19978;&#12391;&#24517;&#35201;&#12394;&#12487;&#12540;&#12479;&#12398;&#12469;&#12452;&#12474;&#12434;&#12354;&#12431;&#12379;&#12427;&#12392; 800MB &#12434;&#36229;&#12360;&#12427;&#12435;&#12391;&#12399;&#12394;&#12356;&#12363;&#12394;&#12354;&#12392;&#24605;&#12356;&#12414;&#12377;&#12290;&#22806;&#12375;&#12390;&#12383;&#12425;&#12372;&#12417;&#12435;&#12290;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&#12418;&#12362;&#12387;&#12375;&#12419;&#12427;&#12392;&#12362;&#12426;&#12391;&#12377;&#12397;&#12290;&#12503;&#12525;&#12475;&#12473;&#12395;&#24517;&#35201;&#12394;&#12513;&#12514;&#12522;&#23481;&#37327;&#12392;&#12289;&#12461;&#12515;&#12483;&#12471;&#12517;&#12395;&#24517;&#35201;&#12394;&#12513;&#12514;&#12522;&#23481;&#37327;&#12434;&#12385;&#12419;&#12435;&#12392;&#21306;&#21029;&#12375;&#12390;&#12356;&#12414;&#12379;&#12435;&#12391;&#12375;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&#12392;&#12394;&#12427;&#12392;&#12289;&#12513;&#12514;&#12522;&#12434;&#22679;&#12420;&#12379;&#12400;&#26360;&#12365;&#36796;&#12415;&#24615;&#33021;&#12364;&#21521;&#19978;&#12377;&#12427;&#21487;&#33021;&#24615;&#12364;&#12354;&#12427;&#12398;&#12391;&#12399;&#12289;&#12392;&#24605;&#12387;&#12383;&#12398;&#12391;&#12377;&#12364;&#12289;&#20170;&#22238;&#12398;&#12465;&#12540;&#12473;&#12391;&#12399;&#12362;&#12381;&#12425;&#12367;&#21521;&#19978;&#12377;&#12427;&#12371;&#12392;&#12399;&#12394;&#12373;&#12381;&#12358;&#12391;&#12377;&#12290;&#12392;&#12356;&#12358;&#12398;&#12418;&#12289;iostat &#12398;&#20516;&#12434;&#35211;&#12390;&#12427;&#12392;&#12289;avgqu-sz &#12364; 1 &#26085;&#24179;&#22343;&#12391;&#12362;&#12424;&#12381; 5&#12289;&#30701;&#26178;&#38291;&#12391;&#35211;&#12427;&#12392; 10 &#12392;&#12363; 20 &#12354;&#12427;&#12356;&#12399;&#12381;&#12428;&#20197;&#19978;&#12392;&#12356;&#12358;&#12371;&#12392;&#12364;&#12374;&#12425;&#12395;&#12354;&#12426;&#12414;&#12377;&#12290;avgqu-sz &#12399;&#12461;&#12517;&#12540;&#12395;&#20837;&#12387;&#12390;&#12356;&#12390;&#24453;&#12385;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427; I/O &#12522;&#12463;&#12456;&#12473;&#12488;&#12398;&#25968;&#12394;&#12398;&#12391;&#12289;&#24120;&#12395;&#20966;&#29702;&#24453;&#12385;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427; I/O &#12522;&#12463;&#12456;&#12473;&#12488;&#12364;&#23384;&#22312;&#12377;&#12427;&#12289;&#12392;&#12356;&#12358;&#12371;&#12392;&#12394;&#12426;&#12414;&#12377;&#12290;&#12394;&#12398;&#12391;&#12289;&#12506;&#12540;&#12472;&#12461;&#12515;&#12483;&#12471;&#12517;&#12398;&#23481;&#37327;&#12398;&#21839;&#38988;&#12391;&#12399;&#12394;&#12367;&#12289;&#12487;&#12451;&#12473;&#12463;&#12398;&#24615;&#33021;&#12364;&#12508;&#12488;&#12523;&#12493;&#12483;&#12463;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12289;&#12392;&#35328;&#12360;&#12381;&#12358;&#12391;&#12377;&#12290;&#65288;&#12371;&#12428;&#12418;&#33258;&#20998;&#12398;&#21208;&#36949;&#12356;&#12394;&#12425;&#24677;&#12378;&#12363;&#12375;&#12356;&#12394;&#12540;&#8230;&#12513;&#12514;&#12522;&#12434;&#31777;&#21336;&#12395;&#22679;&#12420;&#12379;&#12427;&#12394;&#12425;&#12289;&#35430;&#12375;&#12390;&#12415;&#12383;&#12356;&#12435;&#12391;&#12377;&#12369;&#12393;&#12397;&#12290;&#65289;&lt;/p&gt;

&lt;p&gt;naoya &#12373;&#12435;&#12289;&#35443;&#32048;&#12394;&#35299;&#35500;&#12354;&#12426;&#12364;&#12392;&#12358;&#12372;&#12374;&#12356;&#12414;&#12375;&#12383;&#12290;&#22823;&#22793;&#21193;&#24375;&#12395;&#12394;&#12426;&#12414;&#12375;&#12383;&#12290;&#20693;&#12398;&#12383;&#12417;&#12395;&#26178;&#38291;&#12434;&#21106;&#12356;&#12390;&#38263;&#25991;&#12456;&#12531;&#12488;&#12522;&#26360;&#12356;&#12390;&#12367;&#12428;&#12383;&#12289;&#12392;&#24605;&#12358;&#12392;&#12385;&#12423;&#12387;&#12392;&#33804;&#12360;&#12414;&#12375;&#12383;&#12290;&#65288;&#12409;&#12387;&#12289;&#21029;&#12395;&#12354;&#12435;&#12383;&#12398;&#12383;&#12417;&#12395;&#8230;&#12289;&#12392;&#12363;&#35328;&#12431;&#12428;&#12381;&#12358;&#12391;&#12377;&#12364;&#12290;&#65289;&lt;/p&gt;</description>
      <pubDate>Fri, 25 May 2007 20:03:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:07d4b168-273f-43ef-a3be-1508b1b1efe8</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/05/25/linux-disk-io-01</link>
      <category>linux</category>
      <trackback:ping>http://blog.mizzy.org/articles/trackback/513</trackback:ping>
    </item>
    <item>
      <title>write &#12399;&#12518;&#12540;&#12470;&#12503;&#12525;&#12475;&#12473;&#12434;&#24453;&#12383;&#12379;&#12394;&#12356;&#65311;</title>
      <description>&lt;p&gt;&lt;a href="http://naoya.g.hatena.ne.jp/naoya/20070522/1179830475"&gt;naoya&#12464;&#12523;&#12540;&#12503; - naoya&#12398;&#26085;&#35352; -  I/O, iowait&lt;/a&gt; &#12395;&#12385;&#12423;&#12387;&#12392;&#21453;&#24540;&#12375;&#12390;&#12415;&#12414;&#12377;&#12290;&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;write &#12399;&#12506;&#12540;&#12472;&#12395; dirty &#12501;&#12521;&#12464;&#12434;&#31435;&#12390;&#12427;&#12384;&#12369;&#12394;&#12398;&#12391;&#27770;&#12375;&#12390;&#12518;&#12540;&#12470;&#12540;&#12503;&#12525;&#12475;&#12473;&#12434;&#24453;&#12383;&#12379;&#12394;&#12356;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&#12387;&#12390;&#12289;&#26412;&#24403;&#12395;&#12381;&#12358;&#12394;&#12435;&#12391;&#12375;&#12423;&#12358;&#12363;&#65311;&#65288;&#21542;&#23450;&#12375;&#12390;&#12356;&#12427;&#12431;&#12369;&#12391;&#12399;&#12394;&#12367;&#12289;&#32020;&#31883;&#12394;&#30097;&#21839;&#12391;&#12377;&#12290;&#65289;&lt;/p&gt;

&lt;p&gt;&#26368;&#36817;&#12289;&#26360;&#12365;&#36796;&#12415;&#12398;&#22810;&#12356;&#12513;&#12540;&#12523;&#12469;&#12540;&#12496;&#12398;&#12487;&#12451;&#12473;&#12463; I/O &#21608;&#12426;&#12434;&#35519;&#26619;&#12375;&#12390;&#12356;&#12390;&#12289;&#23455;&#38555;&#12395;&#12393;&#12398;&#12503;&#12525;&#12475;&#12473;&#12398;&#26360;&#12365;&#36796;&#12415;&#12364;&#22810;&#12356;&#12398;&#12363;&#12434;&#35519;&#12409;&#12427;&#26041;&#27861;&#12364;&#12431;&#12363;&#12425;&#12394;&#12363;&#12387;&#12383;&#12383;&#12417;&#12289;I/O &#24453;&#12385;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12503;&#12525;&#12475;&#12473;&#12434;&#12459;&#12454;&#12531;&#12488;&#12375;&#12390;&#12289;&#12381;&#12371;&#12363;&#12425;&#39006;&#25512;&#12375;&#12390;&#12415;&#12424;&#12358;&#12392;&#12289;&#12414;&#12378;&#12399;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;while [ 1 ]
  do
    ps -eo comm,state|grep D|grep -v COMMAND &amp;gt;&amp;gt; ps.txt
    sleep 1
  done
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12394;&#24863;&#12376;&#12391; STAT &#12364; D &#12398;&#12503;&#12525;&#12475;&#12473;&#12434;&#35352;&#37682;&#12377;&#12427;&#12473;&#12463;&#12522;&#12503;&#12488;&#12434;&#12375;&#12400;&#12425;&#12367;&#36208;&#12425;&#12379;&#12390;&#12362;&#12356;&#12390;&#12289;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sort ps.txt | uniq -c | sort -gr| more
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12391;&#12459;&#12454;&#12531;&#12488;&#12375;&#12390;&#12415;&#12427;&#12392;&#12289;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;9129 kjournald       D
6576 qmail-queue     D
2017 multilog        D
1897 pdflush         D
1373 qmail-send      D
1094 procmail        D
1032 syslogd         D
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12394;&#24863;&#12376;&#12391;&#12289;kjournald &#12392; qmail-queue &#12364;&#22311;&#20498;&#30340;&#12395;&#22810;&#12356;&#12290;&#12371;&#12428;&#12387;&#12390;&#12393;&#12387;&#12385;&#12418;&#26360;&#12365;&#36796;&#12415;&#12364;&#12513;&#12452;&#12531;&#12398;&#20181;&#20107;&#12398;&#12399;&#12378;&#12290;&lt;/p&gt;

&lt;p&gt;man ps &#12391;&#35211;&#12390;&#12418;&#12289;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;D    Uninterruptible sleep (usually IO)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12394;&#12398;&#12391;&#12289;&#26360;&#12365;&#36796;&#12415;&#12391;&#12503;&#12525;&#12475;&#12473;&#12364;&#24453;&#12383;&#12373;&#12428;&#12390;&#12427;&#12398;&#12384;&#12392;&#24605;&#12358;&#12398;&#12391;&#12377;&#12364;&#12289;&#20309;&#12363;&#38291;&#36949;&#12387;&#12390;&#12414;&#12377;&#12391;&#12375;&#12423;&#12358;&#12363;&#65311;&lt;/p&gt;

&lt;p&gt;&#12385;&#12394;&#12415;&#12395;&#12289;&#26360;&#12365;&#36796;&#12415;&#12364;&#22810;&#12356;&#12392;&#12356;&#12358;&#12398;&#12399;&#12393;&#12428;&#12368;&#12425;&#12356;&#12363;&#12392;&#12356;&#12358;&#12392;&#12289;iostat &#12391;&#12398; r/s &#12392; w/s &#12398;&#27604;&#29575;&#12364; 1:7 &#12368;&#12425;&#12356;&#12391;&#12377;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;free &#12398;&#32080;&#26524;&#12399;&#12371;&#12435;&#12394;&#24863;&#12376;&#12394;&#12398;&#12391;&#12289;&#12513;&#12514;&#12522;&#12395;&#20313;&#35029;&#12399;&#12354;&#12427;&#12415;&#12383;&#12356;&#12391;&#12377;&#12290;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# free
             total       used       free     shared    buffers     cached
Mem:       2043756    2011160      32596          0     351016     847776
-/+ buffers/cache:     812368    1231388
Swap:      1052248
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12371;&#12371;&#25968;&#26085; I/O &#12414;&#12431;&#12426;&#12434;&#36861;&#12356;&#12363;&#12369;&#12390;&#12356;&#12383;&#12398;&#12391;&#12289;naoya &#12373;&#12435;&#12398;&#12456;&#12531;&#12488;&#12522;&#12399;&#12479;&#12452;&#12512;&#12522;&#12540;&#12391;&#12392;&#12390;&#12418;&#12383;&#12417;&#12395;&#12394;&#12426;&#12414;&#12377;&#12290;&#12388;&#12356;&#12391;&#12395;&#33394;&#12293;&#25945;&#12360;&#12390;&#12418;&#12425;&#12362;&#12358;&#12392;&#12356;&#12358;&#29976;&#12356;&#32771;&#12360;&#12391;&#12289;&#30097;&#21839;&#12395;&#24863;&#12376;&#12383;&#12371;&#12392;&#12434;&#26360;&#12356;&#12390;&#12415;&#12414;&#12375;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;&#36861;&#35352;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&#12418;&#12375;&#12363;&#12375;&#12390;&#12300;write &#12399;&#12518;&#12540;&#12470;&#12503;&#12525;&#12475;&#12473;&#12434;&#24453;&#12383;&#12379;&#12394;&#12356;&#12301;&#12392;&#12356;&#12358;&#12398;&#12399;&#12289;&#38750;&#21516;&#26399; I/O &#12398;&#35441;&#65311;&#12391;&#12354;&#12428;&#12400;&#32013;&#24471;&#12399;&#12356;&#12367;&#12290;&lt;/p&gt;</description>
      <pubDate>Wed, 23 May 2007 00:24:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:ed9735e4-7147-4fa7-b64a-acca309f9ce3</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/05/23/linux-disk-io-00</link>
      <category>linux</category>
      <trackback:ping>http://blog.mizzy.org/articles/trackback/512</trackback:ping>
    </item>
    <item>
      <title>FizzBuzz &#12450;&#12475;&#12531;&#12502;&#12521;&#29256; for x86/Linux</title>
      <description>&lt;p&gt;&lt;a href="http://labs.cybozu.co.jp/blog/takesako/2007/05/fizzbuzz_x86.html"&gt;&#31481;&#36843;&#12373;&#12435;&lt;/a&gt;&#12289;&lt;a href="http://subtech.g.hatena.ne.jp/yappo/20070511/1178907299"&gt;Yappo &#12373;&#12435;&lt;/a&gt; &#12395;&#35302;&#30330;&#12373;&#12428;&#12390;&#12289;FizzBuzz &#12450;&#12475;&#12531;&#12502;&#12521;&#29256; for x86/Linux &#12434;&#12388;&#12367;&#12387;&#12390;&#12415;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;20&#24180;&#12411;&#12393;&#21069;&#12395; Z80 &#12391;&#12450;&#12475;&#12531;&#12502;&#12521;&#12434;&#12385;&#12423;&#12387;&#12392;&#12363;&#12376;&#12387;&#12383;&#31243;&#24230;&#12398;&#30693;&#35672;&#12375;&#12363;&#12394;&#12356;&#12398;&#12391;&#12289;&#12505;&#12473;&#12488;&#12395;&#12399;&#31243;&#36960;&#12356;&#12467;&#12540;&#12489;&#12384;&#12392;&#24605;&#12356;&#12414;&#12377;&#12290;&#12384;&#12428;&#12363;&#12418;&#12387;&#12392;&#12356;&#12356;&#12467;&#12540;&#12489;&#12434;&#25945;&#12360;&#12390;&#12367;&#12384;&#12373;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&#26368;&#21021;&#31481;&#36843;&#12373;&#12435;&#12398;&#12467;&#12540;&#12489;&#12392;&#21516;&#12376;&#12424;&#12358;&#12395;&#26360;&#12369;&#12427;&#12363;&#12394;&#12289;&#12392;&#24605;&#12387;&#12383;&#12398;&#12391;&#12377;&#12364;&#12289;Windows &#12392;&#12385;&#12364;&#12387;&#12390;&#12289;&#30011;&#38754;&#12395;&#34920;&#31034;&#12377;&#12427;&#12384;&#12369;&#12391; EAX, EBX, ECX, EDX &#12524;&#12472;&#12473;&#12479;&#20351;&#12358;&#12398;&#12391;&#12289;&#31481;&#36843;&#12373;&#12435;&#12398;&#12424;&#12358;&#12395; BX &#12524;&#12472;&#12473;&#12479;&#12434;&#35211;&#24373;&#12426;&#24441;&#12395;&#12289;CX &#12524;&#12472;&#12473;&#12479;&#12434;&#12459;&#12454;&#12531;&#12479;&#12395;&#12289;&#12387;&#12390;&#12371;&#12392;&#12364;&#12391;&#12365;&#12414;&#12379;&#12435;&#12391;&#12375;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;&#12392;&#12426;&#12354;&#12360;&#12378;&#26360;&#12356;&#12383;&#12384;&#12369;&#12391;&#30130;&#12428;&#12383;&#12398;&#12391;&#12289;&#12467;&#12540;&#12489;&#12468;&#12523;&#12501;&#12395;&#12481;&#12515;&#12524;&#12531;&#12472;&#12377;&#12427;&#27671;&#21147;&#12399;&#12354;&#12426;&#12414;&#12379;&#12435;&#12290;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;global  _start

_start:
        mov     si, 0

mawasu: 
        call    space
        inc     si
        mov     ax, si

        mov     di, 3
        xor     edx, edx
        div     di
        cmp     dx, 0
        je      pfizz

        mov     ax, si
        mov     di, 5
        xor     edx, edx
        div     di
        cmp     dx, 0
        je      pbuzz

        call    num
        cmp     si, 100
        jb      mawasu

pfizz:
        call    fizz

        mov     ax, si
        mov     di, 5
        xor     edx, edx
        div     di
        cmp     dx, 0
        je      pbuzz

        jmp     mawasu

pbuzz:
        call    buzz
        jmp     mawasu

num:
        mov     ax, si

        mov     di, 100
        cmp     ax, di
        jnge    num2

        jmp     end

num2:
        mov     di, 10
        cmp     ax, di
        jnge    num3

        xor     edx, edx
        div     di
        add     ax, 48
        call    print

num3:   
        mov     ax, si
        mov     di, 10
        xor     edx, edx
        div     di
        mov     al, dl
        add     al, 48
        call    print
        ret

fizz:
        mov     al, 0x46
        call    print
        mov     al, 0x69
        call    print
        mov     al, 0x7a
        call    print
        call    print
        ret

buzz:
        mov     al, 0x42
        call    print
        mov     al, 0x75
        call    print
        mov     al, 0x7a
        call    print
        call    print
        ret

space:
        mov     al, 0x20
        call    print
        ret

print:
        push    eax
        mov     eax, 4
        mov     ebx, 1
        mov     ecx, esp
        mov     edx, 1
        int     0x80
        pop     eax
        ret

end:    
        mov     al, 0x0a
        call    print

        mov     al, 1
        mov     bl, 0
        int     0x80
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;nasm &#12434;&#20351;&#12387;&#12390;&#12371;&#12435;&#12394;&#24863;&#12376;&#12391;&#21205;&#12363;&#12377;&#12371;&#12392;&#12364;&#12391;&#12365;&#12414;&#12377;&#12290;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ nasm -f elf fizzbuzz.asm
$ ld -s -o fizzbuzz fizzbuzz.o
$ ./fizzbuzz
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src="/files/fizzbuzz.jpg" alt="fizzbuzz.asm"/&gt;&lt;/p&gt;

&lt;p&gt;&#26360;&#12356;&#12390;&#12356;&#12390;&#12450;&#12475;&#12531;&#12502;&#12521;&#12398; TMTOWTDI &#12387;&#12407;&#12426;&#12399; Perl &#12398;&#27604;&#12376;&#12419;&#12394;&#12356;&#12392;&#24605;&#12387;&#12383;&#12290;&lt;/p&gt;</description>
      <pubDate>Sun, 13 May 2007 21:01:00 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:b3dd3ff5-a0b9-4046-a2b6-14f2fda8e247</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/05/13/fizzbuzz-x86-assembler-for-linux</link>
      <category>program</category>
      <category>linux</category>
      <trackback:ping>http://blog.mizzy.org/articles/trackback/511</trackback:ping>
    </item>
    <item>
      <title>puppet &#26085;&#26412;&#35486; Wiki &#12399;&#12376;&#12417;&#12414;&#12375;&#12383;</title>
      <description>&lt;p&gt;
&#30053;&#12375;&#12390; &lt;a class="ext-link" href="http://trac.mizzy.org/puppet"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&#12497;&#12506;&#12454;&#12451;&#12461;&lt;/a&gt; &#12290;&lt;a class="ext-link" href="http://www.paperboy.co.jp/"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&#24330;&#31038;&lt;/a&gt; &#12398;&#31038;&#20869;&#12454;&#12451;&#12461;&#12399;&#12506;&#12497;&#12454;&#12451;&#12461;&#12391;&#12377;&#12364;&#12289;&#19968;&#20999;&#38306;&#20418;&#12354;&#12426;&#12414;&#12379;&#12435;&#12290;
&lt;/p&gt;
&lt;p&gt;
&#12420;&#12399;&#12426;&#12502;&#12525;&#12464;&#12399;&#24773;&#22577;&#25972;&#29702;&#12395;&#21521;&#12356;&#12390;&#12394;&#12356;&#12398;&#12391;&#12289;&#12454;&#12451;&#12461;&#12391;&#25972;&#29702;&#12375;&#12390;&#12415;&#12427;&#12371;&#12392;&#12395;&#12375;&#12414;&#12375;&#12383;&#12290;
&lt;/p&gt;
&lt;p&gt;
&#12371;&#12398;&#12502;&#12525;&#12464;&#12391;&#26360;&#12356;&#12383;&#12371;&#12392;&#12418;&#12289;&#38918;&#27425;&#31227;&#12375;&#12390;&#12356;&#12365;&#12414;&#12377;&#12290;&#65288;&#20803;&#12293;&#12371;&#12398;&#12502;&#12525;&#12464;&#12399; Trac Wiki Formatting &#12391;&#26360;&#12356;&#12390;&#12427;&#12398;&#12391;&#12289;&#31227;&#12377;&#12398;&#12364;&#27005;&#12290;&#65289;
&lt;/p&gt;
&lt;p&gt;
&#12393;&#12394;&#12383;&#12391;&#12418;&#32232;&#38598;&#12391;&#12365;&#12414;&#12377;&#12398;&#12391;&#12289;&#12362;&#27671;&#12389;&#12365;&#12398;&#28857;&#12394;&#12393;&#12354;&#12428;&#12400;&#12289;&#30452;&#25509;&#32232;&#38598;&#12375;&#12385;&#12419;&#12387;&#12390;&#12367;&#12384;&#12373;&#12356;&#12414;&#12379;&#12290;
&lt;/p&gt;

</description>
      <pubDate>Sun, 25 Mar 2007 03:02:23 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:8AEC0044-FB43-11DB-B19E-9689BF6E4193</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/03/25/puppet09</link>
      <category>linux</category>
      <trackback:ping>http://blog.mizzy.org/articles/trackback/459</trackback:ping>
    </item>
    <item>
      <title>puppetrun &#12434;&#35430;&#12377;&#12394;&#12425;&#12420;&#12387;&#12401; trunk &#29256;&#12398;&#26041;&#12364;&#12424;&#12373;&#12370;</title>
      <description>&lt;p&gt;
&lt;a class="ext-link" href="http://mizzy.org/linux/puppet07.html"&gt;&lt;span class="icon"&gt;&lt;/span&gt;puppet &#20170;&#35430;&#12377;&#12394;&#12425; &#12496;&#12540;&#12472;&#12519;&#12531; 0.22.1 &#12434;&#20351;&#12360;&#12289;&#12381;&#12375;&#12390; gem &#12391;&#20837;&#12428;&#12427;&#12394;&lt;/a&gt; &#12392;&#12356;&#12358;&#12456;&#12531;&#12488;&#12522;&#12434;&#26360;&#12356;&#12383;&#12431;&#12369;&#12391;&#12377;&#12364;&#12289;puppetrun &#12391;&#29305;&#12395; exec &#12434;&#20351;&#12387;&#12390; puppet &#12463;&#12521;&#12452;&#12450;&#12531;&#12488;&#12391;&#20309;&#12363;&#12467;&#12510;&#12531;&#12489;&#12434;&#23455;&#34892;&#12373;&#12379;&#12383;&#12356;&#12289;&#12392;&#12356;&#12358;&#12371;&#12392;&#12391;&#12354;&#12428;&#12400;&#12289;&#20170;&#12399; trunk &#29256;&#12434;&#20351;&#12387;&#12383;&#12411;&#12358;&#12364;&#12356;&#12356;&#12363;&#12418;&#12290;
&lt;/p&gt;
&lt;p&gt;
&#29702;&#30001;&#12290;&#12414;&#12378;&#20197;&#19979;&#12398;&#27096;&#12394;&#21336;&#32020;&#12394;&#12467;&#12510;&#12531;&#12489;&#12434;&#23455;&#34892;&#12373;&#12379;&#12427; site.pp &#12434;&#12388;&#12367;&#12427;&#12290;
&lt;/p&gt;
&lt;pre class="wiki"&gt;
exec { 'touch':
  path    =&gt; '/bin',
  command =&gt; 'touch /tmp/puppet',
}

&lt;/pre&gt;
&lt;p&gt;
&#12391;&#12289;puppetmasterd &#12434; puppet &#12469;&#12540;&#12496;&#12391;&#36215;&#21205;&#12290;
&lt;/p&gt;
&lt;pre class="wiki"&gt;
$ sudo puppetmasterd
&lt;/pre&gt;
&lt;p&gt;
&#27425;&#12395; puppet &#12463;&#12521;&#12452;&#12450;&#12531;&#12488;&#20596;&#12391; puppetd &#12434;&#36215;&#21205;&#12290;
&lt;/p&gt;
&lt;pre class="wiki"&gt;
$ sudo puppetd --listen --no-client --server kenny.southpark -v 
&lt;/pre&gt;
&lt;p&gt;
&#12381;&#12375;&#12390;&#12289;puppet &#12469;&#12540;&#12496;&#20596;&#12391; puppetrun &#12434;&#36215;&#21205;&#12375;&#12390;&#12289;&#35373;&#23450;&#12375;&#12383; exec &#12434;&#12463;&#12521;&#12452;&#12450;&#12531;&#12488;&#12391;&#23455;&#34892;&#12373;&#12379;&#12427;&#12290;
&lt;/p&gt;
&lt;pre class="wiki"&gt;
$ sudo puppetrun --host cartman.southpark
&lt;/pre&gt;
&lt;p&gt;
&#12377;&#12427;&#12392;&#12289;0.22.1 &#12391;&#12399;&#12289;&#12463;&#12521;&#12452;&#12450;&#12531;&#12488;&#20596;&#12398; puppetd &#12364;&#12495;&#12531;&#12464;&#12375;&#12383;&#29366;&#24907;&#12395;&#12394;&#12426;&#12414;&#12377;&#12290;strace &#12391;&#35211;&#12427;&#12392;&#12289;&#20197;&#19979;&#12398;&#35352;&#36848;&#12364;&#24310;&#12293;&#12392;&#34920;&#31034;&#12373;&#12428;&#12427;&#12392;&#12356;&#12358;&#29366;&#24907;&#12395;&#12290;
&lt;/p&gt;
&lt;pre class="wiki"&gt;
rt_sigprocmask(SIG_SETMASK, [], ULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], ULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], ULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], ULL, 8) = 0
... (&#20197;&#19979;&#32368;&#12426;&#36820;&#12375;)
&lt;/pre&gt;
&lt;p&gt;
0.22.1 &#12392; 0.22.2 &#12398;&#38291;&#12391;&#12289;lib/puppet/type/exec.rb &#12395;&#12363;&#12394;&#12426;&#20462;&#27491;&#12364;&#20837;&#12387;&#12390;&#12427;&#12398;&#12391;&#12289;&#12362;&#12381;&#12425;&#12367; 0.22.2 &#12391;&#12399;&#22823;&#19976;&#22827;&#12384;&#12429;&#12358;&#12369;&#12393;&#12289;&lt;a class="ext-link" href="http://mizzy.org/linux/puppet07.html"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&#21069;&#12456;&#12531;&#12488;&#12522;&lt;/a&gt; &#12391;&#26360;&#12356;&#12383;&#12424;&#12358;&#12395;&#12289;0.22.2 &#12391;&#12399;&#12381;&#12418;&#12381;&#12418; puppetd &#12364;&#12456;&#12521;&#12540;&#12391;&#36215;&#21205;&#12391;&#12365;&#12394;&#12356;&#12289;&#12392;&#12356;&#12358;&#21839;&#38988;&#12364;&#12354;&#12427;&#12290;&#12394;&#12398;&#12391;&#12289;trunk &#29256;&#12434;&#20351;&#12358;&#12398;&#12364;&#12356;&#12356;&#12289;&#12392;&#12356;&#12358;&#32080;&#35542;&#12395;&#12394;&#12426;&#12414;&#12375;&#12383;&#12290;trunk &#29256;&#12384;&#12392;&#21839;&#38988;&#12394;&#12367;&#23455;&#34892;&#12391;&#12365;&#12427;&#12371;&#12392;&#12434;&#30906;&#35469;&#28168;&#12415;&#12290;
&lt;/p&gt;
&lt;p&gt;
&lt;del&gt;&#12383;&#12384;&#12289;&#12371;&#12428;&#12418; &lt;a class="ext-link" href="http://mizzy.org/linux/puppet07.html"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&#21069;&#12456;&#12531;&#12488;&#12522;&lt;/a&gt; &#12391;&#26360;&#12356;&#12383;&#12424;&#12358;&#12395;&#12289;puppetrun &#12395;&#20197;&#19979;&#12398;&#19968;&#34892;&#12434;&#36861;&#21152;&#12375;&#12394;&#12356;&#12392;&#21205;&#12363;&#12394;&#12356;&#12398;&#12391;&#27880;&#24847;&#12290; &lt;/del&gt;&lt;a class="ext-link" href="http://reductivelabs.com/trac/puppet/changeset/2352"&gt;&lt;span class="icon"&gt;&lt;/span&gt;fix &#12373;&#12428;&#12383;&lt;/a&gt;&#12290;&#33258;&#20998;&#12398;&#20462;&#27491;&#20869;&#23481;&#12392;&#36949;&#12358;&#12369;&#12393;&#12290;
&lt;/p&gt;
&lt;pre class="wiki"&gt;
require 'puppet/network/client/runner'
&lt;/pre&gt;
&lt;p&gt;
&#12414;&#12384;&#23455;&#25126;&#25237;&#20837;&#12399;&#12420;&#12417;&#12390;&#12362;&#12356;&#12383;&#26041;&#12364;&#12424;&#12373;&#12381;&#12358;&#12363;&#12394;&#8230;&#12290;&#12414;&#12384;&#26908;&#35388;&#27573;&#38542;&#12394;&#12398;&#12391;&#12356;&#12356;&#12398;&#12391;&#12377;&#12364;&#12290;
&lt;/p&gt;

</description>
      <pubDate>Sat, 24 Mar 2007 23:21:07 +0900</pubDate>
      <guid isPermaLink="false">urn:uuid:8A3DDB2C-FB43-11DB-B19E-9689BF6E4193</guid>
      <author>Gosuke Miyashita</author>
      <link>http://blog.mizzy.org/articles/2007/03/24/puppet08</link>
      <category>linux</category>
      <trackback:ping>http://blog.mizzy.org/articles/trackback/452</trackback:ping>
    </item>
  </channel>
</rss>
