<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5159790630402471344</id><updated>2012-01-06T06:44:39.436+09:00</updated><category term='linux'/><category term='firefox'/><category term='thinkpad'/><category term='centos'/><category term='emacs'/><category term='gnome-do'/><category term='mysql'/><category term='git'/><category term='nginx'/><category term='mac'/><category term='zsh'/><category term='freebsd'/><category term='vim'/><category term='lisp'/><category term='ubuntu'/><category term='command'/><title type='text'>メモcache</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://memocache.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>51</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-7620588379039171367</id><published>2011-07-06T06:16:00.010+09:00</published><updated>2011-07-06T07:10:01.872+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>自動プロキシ設定スクリプトで楽にIP制限を乗り越える</title><content type='html'>安全性を高めるために例えばphpmyadminなどはIP制限(会社のIPなどで)がかかっていて&lt;br /&gt;家にかえって作業するときプロキシを切り替えたりが面倒でやる気が失せる。&lt;br /&gt;他にも管理画面などもIP制限がかかっていたりして面倒くさくてやる気失せる。&lt;br /&gt;家にいるときも外にいる時も気にせず作業したいのでなんとかすることにした。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;実現したいこと&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;会社にいるときは自動でproxyなしで接続してほしい。&lt;br /&gt;会社にいない時も自動でIP制限のかかっていないURLはproxyなしで直接つなぎたい。&lt;br /&gt;firefoxのプロキシの設定など毎回いじらないで作業できるようにしたい&lt;br /&gt;要はどこにいようがいつもどうり作業できるようにしたい&lt;/blockquote&gt;&lt;br /&gt;myIpAddress()で振り分けしている例が多かったが、&lt;br /&gt;myIpAddress()が127.0.0.1しか返さないので使えない。&lt;br /&gt;pocketwifiをつかっているせいなのか無線LANのIPをmyIpAddress()がひろえていないのか&lt;br /&gt;よくわからないが、myIpAddress()が不安定な感じであったので他の手を考える。&lt;br /&gt;&lt;br /&gt;会社にいるときの個人マシンのローカルIPアドレスは192.168.1.100〜のDHCPなので&lt;br /&gt;ローカルIPアドレスを使って社内にいるか社外にいるか判定する。&lt;br /&gt;&lt;br /&gt;以下のファイルを会社の同じサブネットにいるwebサーバのどっか適応なところにおく&lt;br /&gt;(http://example.com/proxy.phpでつながるところにおくと仮定する)&lt;br /&gt;要は会社のルータの下にsshとhttpがつながるサーバがあればよい。&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1066081.js?file=gistfile1.php"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;firefoxの自動設定スクリプトのURLをさきほど設定した&lt;br /&gt;http://example.com/proxy.phpにする。&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-URx8uE-OenY/ThN_Ey2FH4I/AAAAAAAAAfU/-W2TnQe6j_U/s1600/proxy.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="232" width="400" src="http://2.bp.blogspot.com/-URx8uE-OenY/ThN_Ey2FH4I/AAAAAAAAAfU/-W2TnQe6j_U/s400/proxy.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;sshを公開鍵でつながるようにしたのち、&lt;br /&gt;~/.ssh/config&lt;br /&gt;&lt;blockquote&gt;Host proxy&lt;br /&gt;HostName 会社のIPアドレス&lt;br /&gt;DynamicForward 1080&lt;br /&gt;User 会社のsshサーバのログイン名&lt;br /&gt;&lt;br /&gt;Host *&lt;br /&gt;ServerAliveInterval 60&lt;br /&gt;Compression yes&lt;br /&gt;CompressionLevel 1&lt;br /&gt;ForwardX11 no&lt;br /&gt;GSSAPIAuthentication no&lt;/blockquote&gt;windowsの場合は上記のconfigをportforwarderに食わせる。&lt;br /&gt;&lt;br /&gt;これで&lt;br /&gt;社内からのアクセスはproxy無しで&lt;br /&gt;社外からのアクセスではIP制限されたサイトだけ自動でproxyを利用するようになります。&lt;br /&gt;社外からのアクセスでIP制限されていないサイトはproxyを使わないで直接接続するので負荷は少なくてよい感じ&lt;br /&gt;&lt;br /&gt;社外からIP制限されたサイトをみる時だけターミナルを開いて&lt;br /&gt;&lt;blockquote&gt;ssh proxy&lt;/blockquote&gt;とするだけで使える。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-7620588379039171367?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=7620588379039171367' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/7620588379039171367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/7620588379039171367'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/07/ip.html' title='自動プロキシ設定スクリプトで楽にIP制限を乗り越える'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-URx8uE-OenY/ThN_Ey2FH4I/AAAAAAAAAfU/-W2TnQe6j_U/s72-c/proxy.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-8509010725301436564</id><published>2011-07-05T14:10:00.001+09:00</published><updated>2011-07-05T14:11:22.159+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thinkpad'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>thinkpadのtrackpointの調整など</title><content type='html'>X200で確認&lt;br /&gt;ubuntu10.10&lt;br /&gt;&lt;br /&gt;トラックポイントの感度とマウススピード&lt;br /&gt;rootになって以下で調整できる。&lt;br /&gt;&lt;blockquote&gt;echo -n 170 &gt; /sys/devices/platform/i8042/serio1/speed&lt;br /&gt;echo -n 170 &gt; /sys/devices/platform/i8042/serio1/sensitivity&lt;/blockquote&gt;&lt;br /&gt;再起動しても有効にするには&lt;br /&gt;vim /etc/sysfs.conf&lt;br /&gt;&lt;blockquote&gt;devices/platform/i8042/serio1/sensitivity=170&lt;br /&gt;devices/platform/i8042/serio1/speed=170&lt;/blockquote&gt;&lt;br /&gt;GUIで設定するなら&lt;br /&gt;&lt;a href="http://tpctl.sourceforge.net/configure-trackpoint.html"&gt;configure-trackpoint&lt;/a&gt;を利用する。&lt;br /&gt;再起動しても有効になるように勝手に書き込んでくれる。&lt;br /&gt;&lt;br /&gt;バッテリ関係&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install tp-smapi-dkms sysfsutils&lt;/blockquote&gt;&lt;br /&gt;/etc/modules に追記&lt;br /&gt;&lt;blockquote&gt;tp-smapi&lt;/blockquote&gt;&lt;br /&gt;vim /etc/sysfs.conf に追記（充電開始 60%、充電終了 90%）&lt;br /&gt;&lt;blockquote&gt;devices/platform/smapi/BAT0/start_charge_thresh = 60&lt;br /&gt;devices/platform/smapi/BAT0/stop_charge_thresh  = 90&lt;/blockquote&gt;100％充電をしてバッテリーが早くヘタらないように設定しておく。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;アクティブプロテクション&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install hdapsd&lt;/blockquote&gt;&lt;br /&gt;ミュートボタンの有効化&lt;br /&gt;vim /etc/default/grub&lt;br /&gt;&lt;blockquote&gt;GRUB_CMDLINE_LINUX="acpi_osi=\"Linux\""&lt;/blockquote&gt;&lt;br /&gt;update-grub&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-8509010725301436564?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=8509010725301436564' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8509010725301436564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8509010725301436564'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/07/thinkpadtrackpoint.html' title='thinkpadのtrackpointの調整など'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-3513814414701697960</id><published>2011-06-22T15:32:00.002+09:00</published><updated>2011-07-06T07:15:12.048+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Sylpheedの着信音を複数設定する</title><content type='html'>Sylpheedがメールを受け取ったら着信音をならしているけれども&lt;br /&gt;いつも同じ音だと飽きてしまうのでMusicフォルダにあるサウンドを順番にならすようにしてみた。&lt;br /&gt;sylpheedの受信の設定で新着メッセージがとどいたら次のコマンドを設定するに&lt;br /&gt;以下のシェルスクリプトを設定するだけ。&lt;br /&gt;&lt;br /&gt;mp3がある場合はmpg321をインストール&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install mpg321&lt;/blockquote&gt;あとはubuntuならそのままいけた&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1039571.js?file=music.sh"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-3513814414701697960?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=3513814414701697960' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/3513814414701697960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/3513814414701697960'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/06/sylpheed.html' title='Sylpheedの着信音を複数設定する'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-1846652496350960817</id><published>2011-06-17T11:12:00.014+09:00</published><updated>2011-06-17T22:51:15.467+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>会社の Mac mini を家の ubuntu から使う</title><content type='html'>iphoneアプリを作成しなければいけなくなったが、&lt;br /&gt;MacBook や iMac を買う気などさらさらないので&lt;br /&gt;会社の Mac mini を家から使えるようにする。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;前提条件&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;会社のグローバルIPでsshサーバにつながる(Mac miniに直接つながらなくてもよい）&lt;br /&gt;そのsshサーバと Mac mini が同じサブネットにいること&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Mac miniの設定&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-yYGWYT6goNw/TfrPi9qambI/AAAAAAAAAek/1-CeG3o3gtQ/s1600/macmini.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="225" width="400" src="http://2.bp.blogspot.com/-yYGWYT6goNw/TfrPi9qambI/AAAAAAAAAek/1-CeG3o3gtQ/s400/macmini.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;blockquote&gt;Mac miniのローカルIPを固定しておく&lt;br /&gt;システム環境設定&lt;br /&gt;↓&lt;br /&gt;共有パネルをクリック&lt;br /&gt;↓&lt;br /&gt;画面共有サービスにチェック&lt;br /&gt;↓&lt;br /&gt;vnc使用者が画面を操作することを許可してパスワードを設定&lt;br /&gt;↓&lt;br /&gt;次のユーザーのみにチェック&lt;br /&gt;↓&lt;br /&gt;「+」をクリックします&lt;br /&gt;↓&lt;br /&gt;ユーザーを指定&lt;br /&gt;↓&lt;br /&gt;［システム環境設定］⇒［省エネルギー］⇒［オプション］で、&lt;br /&gt;［ネットワークアクセスによって、スリープを解除］を ON &lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;ubuntuの設定&lt;/b&gt;&lt;br /&gt;vim ~/.ssh/config&lt;br /&gt;&lt;blockquote&gt;Host macmini-vnc&lt;br /&gt;HostName 会社のIPアドレス&lt;br /&gt;User sshサーバのログインユーザ(Mac miniのsshではない)&lt;br /&gt;LocalForward 6000 マックのローカルIP:5900&lt;/blockquote&gt;&lt;br /&gt;ubuntuのターミナルを開いて&lt;br /&gt;ssh macmini-vnc&lt;br /&gt;この接続ではコマンドなどを打たないので&lt;br /&gt;ターミナルを使うときはscreenなどを利用する&lt;br /&gt;&lt;br /&gt;firefoxに&lt;br /&gt;vnc://localhost:6000&lt;br /&gt;と打ち込むとvncクライアントが立ち上がる。&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-4vF7UEDdzlc/Tfq6QkNsbyI/AAAAAAAAAeY/bi4Mey5LPqY/s1600/workspace.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="250" width="400" src="http://3.bp.blogspot.com/-4vF7UEDdzlc/Tfq6QkNsbyI/AAAAAAAAAeY/bi4Mey5LPqY/s400/workspace.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Mac miniがスリープにはいっている時は&lt;br /&gt;何回か接続すれば起きてくれるようだ。&lt;br /&gt;centosのsshサーバから&lt;br /&gt;ether-wake (Mac miniのマックアドレス)　で起こしてもいいのかな？&lt;br /&gt;作業中は Mac mini がスリープしないようにしておかないとウザいかも…&lt;br /&gt;&lt;br /&gt;これでiphoneアプリのコンパイルなどはできるので&lt;br /&gt;あとは家のマシンのTitaniumなどで開発したものを転送すればよい。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mac miniに直接ファイルを転送する&lt;/b&gt;&lt;br /&gt;会社のsshサーバからMac miniにsshでつながるようにしておいて&lt;br /&gt;以下をubuntuの~/.ssh/configに追加する&lt;br /&gt;&lt;blockquote&gt;Host macmini-vnc-proxy&lt;br /&gt;HostName macminiのローカルIPアドレス&lt;br /&gt;User macminiのユーザ&lt;br /&gt;ProxyCommand nohup ssh 会社のsshのログインユーザ名@会社のsshサーバのグローバルIP nc -w 10 %h %p&lt;/blockquote&gt;ファイルとフォルダを転送してみる&lt;br /&gt;&lt;blockquote&gt;scp file.txt macmini-vnc-proxy:&lt;br /&gt;scp -r folder macmini-vnc-proxy:&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-1846652496350960817?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=1846652496350960817' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/1846652496350960817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/1846652496350960817'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/06/mac-mini-ubuntu.html' title='会社の Mac mini を家の ubuntu から使う'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-yYGWYT6goNw/TfrPi9qambI/AAAAAAAAAek/1-CeG3o3gtQ/s72-c/macmini.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-4952254288415840497</id><published>2011-06-10T20:18:00.000+09:00</published><updated>2011-06-10T20:18:32.161+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome-do'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>gnome do で /usr/local/bin/emacs が立ち上がらない</title><content type='html'>gnome do は どうも /usr/local/bin/ のPATH を見ているようだけど&lt;br /&gt;PATHの優先順位は見てくれないので&lt;br /&gt;emacs で起動すると パッケージのemacsで起動し、&lt;br /&gt;コンパイルした emacs を起動できない。&lt;br /&gt;いちいち /usr/local/bin/emacs などと&lt;br /&gt;gnome do にうちこんでむなしくなったのでなんとかする。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;sudo vim /usr/share/applications/emacs23.desktop&lt;br /&gt;sudo vim /usr/local/share/applications/emacs.desktop&lt;br /&gt;Exec=/usr/local/bin/emacs に書きかえる&lt;/blockquote&gt;ちょっとカッコ悪いがこれでよいようだ。&lt;br /&gt;なんかうまく切り替える方法はないものかと考えたが、&lt;br /&gt;どうせコンパイルしたemacsしか起動しないからまぁいっか&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-4952254288415840497?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=4952254288415840497' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4952254288415840497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4952254288415840497'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/06/gnome-do-usrlocalbinemacs.html' title='gnome do で /usr/local/bin/emacs が立ち上がらない'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-4640617843541117257</id><published>2011-04-13T23:51:00.004+09:00</published><updated>2011-04-14T00:02:14.490+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>emobileが遅いのでubuntu で Google Public DNSを使う</title><content type='html'>emobileのGP01を購入して、使ってみた。&lt;br /&gt;速度もまぁまぁでていて悪くないような感じだが、&lt;br /&gt;DNSの名前解決が遅いので体感速度が遅い。&lt;br /&gt;とりあえず、ubuntuで Google Public DNSを使ってみることにした。&lt;br /&gt;&lt;br /&gt;しかし、&lt;br /&gt;/etc/resolv.confに&lt;br /&gt;&lt;blockquote&gt;nameserver 8.8.8.8&lt;/blockquote&gt;などと書いても&lt;br /&gt;&lt;blockquote&gt;# Generated by NetworkManager&lt;br /&gt;nameserver 192.168.1.1&lt;/blockquote&gt;のような感じで書き換えられてしまってウザいことこの上ない。&lt;br /&gt;これでは毎回/etc/resolv.conf書き換えなければならない。&lt;br /&gt;それにモバイルで使うのを考えると固定IPはめんどくさい。&lt;br /&gt;&lt;br /&gt;そこでdhcpが書き換えるnameserverにGoogle Public DNSのIPをつけるようにする設定をした&lt;br /&gt;&lt;blockquote&gt;sudo vim /etc/dhcp3/dhclient.conf&lt;br /&gt;#prependの行を追加&lt;br /&gt;prepend domain-name-servers 8.8.8.8, 8.8.4.4;&lt;/blockquote&gt;&lt;br /&gt;ネットワークを再起動すると&lt;br /&gt;/etc/resolv.confが以下のように書き換えられるようになる。&lt;br /&gt;&lt;blockquote&gt;# Generated by NetworkManager&lt;br /&gt;nameserver 8.8.8.8&lt;br /&gt;nameserver 8.8.4.4&lt;br /&gt;nameserver 192.168.1.1　←ここはネットワーク環境によって変わってくれる&lt;br /&gt;&lt;/blockquote&gt;これで体感速度は2倍くらいになったような気がする。&lt;br /&gt;emobileのDNSはショボイのだろうか。&lt;br /&gt;いい感じになったのでよしとする。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-4640617843541117257?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=4640617843541117257' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4640617843541117257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4640617843541117257'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/04/emobileubuntu-google-public-dns.html' title='emobileが遅いのでubuntu で Google Public DNSを使う'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-7873002582291302533</id><published>2011-02-19T00:24:00.040+09:00</published><updated>2011-11-13T11:02:09.033+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zsh'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>ubuntu10.10(Maverick Meerkat)再インストール用メモ</title><content type='html'>いきなりターミナルでzshが起動したら.zshrcをいじりにくいのでscreenからzshを呼ぶ&lt;br /&gt;これで.zshrcに無茶苦茶なカスタマイズをして起動しなくなってもbashでなんとかなる。&lt;br /&gt;故にログインシェルはbashにしておく。&lt;br /&gt;ターミナルを起動したらscreenと打つだけでよい(これくらいのめんどくささは我慢する)&lt;br /&gt;&lt;blockquote&gt;echo "alias screen='screen -D -RR'" &gt;&gt; ~/.bashrc&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;~/.screenrc&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;shell zsh&lt;br /&gt;autodetach on&lt;br /&gt;defkanji utf-8&lt;br /&gt;defencoding utf-8&lt;br /&gt;encoding utf-8 utf-8&lt;br /&gt;defscrollback 10000&lt;br /&gt;escape ^Jj&lt;br /&gt;startup_message off&lt;br /&gt;vbell off&lt;br /&gt;altscreen on&lt;br /&gt;hardstatus alwayslastline "%{= kw} %-w%40L&gt;%{bd bw} %n %t %{-}%+w%-037=%{d kd} %l %{.B} %Y/%m/%d %c:%s"&lt;br /&gt;bind c screen zsh&lt;br /&gt;bind n next&lt;br /&gt;bind p prev&lt;br /&gt;bind j next&lt;br /&gt;bind l windowlist&lt;br /&gt;bind o focus&lt;br /&gt;bind U eval "encoding utf-8" "!!!echo 'export LANG=ja_JP.UTF-8'"&lt;br /&gt;bind E eval "encoding euc" "!!!echo 'export LANG=ja_JP.EUC-JP'"&lt;br /&gt;hardcopydir /home/masa/screen&lt;br /&gt;#screenでコピーしたものがクリップボードにはいる&lt;br /&gt;#sudo apt-get install xclipしておく&lt;br /&gt;bindkey -m ' ' eval 'msgwait 0' 'stuff \040' writebuf 'exec !!! xclip /tmp/screen-exchange' 'msgwait 2'&lt;br /&gt;bindkey -m Y eval 'msgwait 0' 'stuff Y' writebuf 'exec !!! xclip /tmp/screen-exchange' 'msgwait 2'&lt;br /&gt;bindkey -m W eval 'msgwait 0' 'stuff W' writebuf 'exec !!! xclip /tmp/screen-exchange' 'msgwait 2'&lt;br /&gt;bind r eval 'echo "Resize window"' 'command -c resize'&lt;br /&gt;bind -c resize ^] command&lt;br /&gt;bind -c resize j eval 'resize +1' 'command -c resize'&lt;br /&gt;bind -c resize k eval 'resize -1' 'command -c resize'&lt;br /&gt;bind | eval "split -v" focus screen&lt;br /&gt;bind S eval split focus screen&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;開発環境など&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install sary&lt;br /&gt;sudo apt-get install paco&lt;br /&gt;sudo apt-get install traceroute&lt;br /&gt;sudo apt-get install cu&lt;br /&gt;sudo apt-get install minicom&lt;br /&gt;sudo apt-get install samba&lt;br /&gt;sudo apt-get install tcpflow&lt;br /&gt;sudo apt-get install docky&lt;br /&gt;sudo apt-get install mail-notification&lt;br /&gt;sudo apt-get install sysv-rc-conf&lt;br /&gt;sudo apt-get install tig&lt;br /&gt;sudo apt-get install diffuse&lt;br /&gt;sudo apt-get install rcconf&lt;br /&gt;sudo apt-get install nmap&lt;br /&gt;sudo apt-get install vim&lt;br /&gt;sudo apt-get install nkf&lt;br /&gt;sudo apt-get install xsel&lt;br /&gt;sudo apt-get install atool&lt;br /&gt;sudo apt-get install ttyrec&lt;br /&gt;sudo apt-get install keychain&lt;br /&gt;sudo apt-get install libnotify-bin&lt;br /&gt;sudo apt-get install zsh&lt;br /&gt;sudo apt-get install rlwrap&lt;br /&gt;sudo apt-get install gpointing-device-settings&lt;br /&gt;sudo apt-get install emacs23 emacs-goodies-el&lt;br /&gt;sudo apt-get install w3m-el-snapshot&lt;br /&gt;sudo apt-get install apache2-utils&lt;br /&gt;sudo apt-get install sylpheed-doc&lt;br /&gt;sudo apt-get install colordiff&lt;br /&gt;sudo apt-get install sshfs&lt;br /&gt;sudo apt-get install global&lt;br /&gt;sudo apt-get install smbfs&lt;br /&gt;sudo apt-get install php5-cli&lt;br /&gt;sudo apt-get install screen&lt;br /&gt;sudo apt-get install xclip&lt;br /&gt;sudo apt-get install iotop&lt;br /&gt;sudo apt-get install migemo&lt;br /&gt;sudo apt-get install parcellite&lt;br /&gt;sudo apt-get install vlc&lt;br /&gt;sudo apt-get install winff&lt;br /&gt;sudo apt-get install deja-dup&lt;br /&gt;sudo apt-get install gtk-recordmydesktop&lt;br /&gt;sudo apt-get install liferea&lt;br /&gt;sudo apt-get install meld&lt;br /&gt;sudo apt-get install clisp&lt;br /&gt;sudo apt-get install sbcl&lt;br /&gt;sudo apt-get install sbcl-doc&lt;br /&gt;sudo apt-get install slime&lt;br /&gt;sudo apt-get install hyperspec&lt;br /&gt;sudo apt-get install hardinfo&lt;br /&gt;sudo apt-get install wireshark&lt;br /&gt;sudo apt-get install doxygen doxygen-gui graphviz&lt;br /&gt;sudo apt-get install xmanpages-ja&lt;br /&gt;sudo apt-get install manpages-ja&lt;br /&gt;sudo apt-get install manpages-ja-dev&lt;br /&gt;sudo apt-get install compizconfig-settings-manager&lt;br /&gt;sudo apt-get install inkscape&lt;br /&gt;sudo apt-get install p7zip&lt;br /&gt;sudo apt-get install rar&lt;br /&gt;sudo apt-get install shutter&lt;br /&gt;sudo apt-get install exaile&lt;br /&gt;sudo apt-get install ubuntu-restricted-extras&lt;br /&gt;sudo apt-get install preload&lt;br /&gt;sudo apt-get install cups-pdf&lt;br /&gt;sudo apt-get install ntfs-config&lt;br /&gt;sudo apt-get install gparted&lt;br /&gt;sudo apt-get install sdic&lt;br /&gt;sudo apt-get install quicksynergy&lt;br /&gt;sudo apt-get install trash-cli&lt;br /&gt;sudo apt-get install dstat&lt;br /&gt;sudo apt-get install gftp&lt;br /&gt;sudo apt-get install testdisk&lt;br /&gt;sudo apt-get install gnome-do&lt;br /&gt;sudo apt-get install mplayer&lt;br /&gt;sudo apt-get install multiget&lt;br /&gt;sudo apt-get install asunder&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$HOME配下を英語名に変更する。&lt;br /&gt;&lt;blockquote&gt;LANG=C xdg-user-dirs-gtk-update&lt;br /&gt;&lt;/blockquote&gt;キーボードのレイアウトのオプション&lt;br /&gt;&lt;blockquote&gt;Ctrl キーの位置&lt;br /&gt;Make CapsLock an addtional Ctrl&lt;br /&gt;&lt;br /&gt;Key sewuence to kill the X server&lt;br /&gt;Control + Alt + Backspace&lt;/blockquote&gt;キーボードショートカット&lt;br /&gt;&lt;blockquote&gt;ウインドウの管理の&lt;br /&gt;ウインドウメニューをアクティブにするを無効にする&lt;/blockquote&gt;GnomeをEmacsキーバインドにする&lt;br /&gt;&lt;blockquote&gt;gconf-editor&lt;br /&gt;desktop → gnome → interface を開いてgtk_key_theme の値を Emacs にする。&lt;/blockquote&gt;USBメモリから以前のマシンの.sshフォルダをコピーする&lt;br /&gt;USBメモリから以前のマシンのMailフォルダをコピーする&lt;br /&gt;&lt;br /&gt;GITをインストールする&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install build-essential&lt;br /&gt;sudo apt-get install zlib1g-dev&lt;br /&gt;cd /tmp&lt;br /&gt;wget http://www.kernel.org/pub/software/scm/git/git-1.7.4.tar.gz&lt;br /&gt;tar zxvf git-1.7.4.tar.gz&lt;br /&gt;cd git-1.7.4&lt;br /&gt;./configure&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;/blockquote&gt;fontを追加&lt;br /&gt;&lt;blockquote&gt;mkdir .fonts&lt;br /&gt;cp -r git/.fonts .fonts&lt;br /&gt;Migu-1M-20110514&lt;br /&gt;Ricty-Bold.ttf&lt;br /&gt;Ricty-Regular.ttf&lt;br /&gt;mixfont-mplus-ipa-TrueType-20060520p1をインストール&lt;/blockquote&gt;gnome-terminalのフォントをRicty-Regular か M+2VM+IPAG circleにする&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IPv6 無効化&lt;br /&gt;vim /etc/sysctl.d/99-ipv6.conf&lt;br /&gt;&lt;blockquote&gt;net.ipv6.conf.all.disable_ipv6 = 1&lt;br /&gt;net.ipv6.conf.default.disable_ipv6 = 1&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;ranger&lt;br /&gt;&lt;blockquote&gt;wget http://nongnu.org/ranger/ranger-stable.tar.gz&lt;br /&gt;tar xvf ranger-stable.tar.gz&lt;br /&gt;cd ranger-1.4.1/&lt;br /&gt;sudo make install&lt;/blockquote&gt;mecab&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install mecab libmecab-dev mecab-ipadic&lt;br /&gt;sudo /usr/lib/mecab/mecab-dict-index -d /usr/share/mecab/dic/ipadic -o /var/lib/mecab/dic/ipadic -f euc-jp -t utf-8 -p&lt;br /&gt;&lt;/blockquote&gt;Emacs&lt;br /&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:ubuntu-elisp/ppa&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install emacs23&lt;/blockquote&gt;IBusの設定&lt;br /&gt;&lt;blockquote&gt;切り替え Ctrl+Spaceを削除して、Shift+Spaceを追加&lt;br /&gt;言語バーにインプットメソッド名を表示するにチェック&lt;br /&gt;mozcのキー設定をことえりにして&lt;br /&gt;代替空白文字を適当Ctrl shift spaceにする&lt;/blockquote&gt;Wine&lt;br /&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:ubuntu-wine&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install wine1.2&lt;/blockquote&gt;Firefoxアドオン&lt;br /&gt;&lt;blockquote&gt;QuickDrag&lt;br /&gt;KeySnail&lt;br /&gt;Tab Mix Plus&lt;br /&gt;FireGestures&lt;br /&gt;Default FullZoom Level&lt;br /&gt;SQlite Optimizer → firefox4では未対応なのでVacuum Places Improved&lt;br /&gt;HatenaBookmark&lt;br /&gt;XUL/Migemo&lt;br /&gt;Download Statusbar&lt;br /&gt;LoL&lt;br /&gt;Adblock Plus&lt;br /&gt;text link&lt;br /&gt;scrap book&lt;br /&gt;firebug&lt;br /&gt;FireMobileSimulator&lt;br /&gt;webdeveloper&lt;br /&gt;ViewSourceWith&lt;br /&gt;Live HTTP Headers&lt;/blockquote&gt;Chrome&lt;br /&gt;&lt;blockquote&gt;wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - &lt;br /&gt;sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" &gt;&gt; /etc/apt/sources.list.d/google.list'&lt;br /&gt;sudo apt-get update &lt;br /&gt;sudo apt-get install google-chrome-stable&lt;/blockquote&gt;conpiz configマネージャーのウインドウのルールの最大化に追加&lt;br /&gt;&lt;blockquote&gt;(class=terminal) | class=Terminal | (class=emacs) | class=Emacs&lt;/blockquote&gt;terminalでgnome-terminal起動&lt;br /&gt;&lt;blockquote&gt;sudo ln -s /usr/bin/gnome-terminal /usr/bin/terminal&lt;/blockquote&gt;compizの設定&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install compizconfig-settings-manager ccsm&lt;br /&gt;一般 → 一般オプション → フォーカスとその関連動作 → フォーカス奪取防止レベルを低からオフへ&lt;br /&gt;&lt;/blockquote&gt;screenkey&lt;br /&gt;&lt;blockquote&gt;https://launchpad.net/screenkey&lt;/blockquote&gt;FirefoxのIPv6を無効化(firefoxが遅いので)&lt;br /&gt;&lt;blockquote&gt;about:config&lt;br /&gt;network.dns.disableIPv6 を True に変更&lt;/blockquote&gt;FireFox4&lt;br /&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:mozillateam/firefox-stable&lt;br /&gt;sudo apt-get update&lt;br /&gt;アップデートマネージャーでアップデートする&lt;br /&gt;テーマ　BlackFox V1-Blue&lt;/blockquote&gt;Emacsをコンパイルする&lt;br /&gt;&lt;blockquote&gt;sudo apt-get build-dep emacs&lt;br /&gt;cd emacs23.3&lt;br /&gt;./configure&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;/blockquote&gt;migemoをコンパイルする&lt;br /&gt;&lt;blockquote&gt;gzip -dc migemo-xxx.tar.gz | tar xvf -&lt;br /&gt;でソースを展開し、 migemo-xxx ディレクトリへ移動。&lt;br /&gt;./configure&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;br /&gt;で migemo をインストール&lt;/blockquote&gt;emacs-w3m をコンパイルする&lt;br /&gt;&lt;blockquote&gt;emacs-w3m-1.4.4.tar.gzを公式サイトからDLして解凍して、そこに開発版の内容を上書きする。&lt;br /&gt;↓こんな感じで&lt;br /&gt;tar zxvf emacs-w3m-1.4.4.tar.gz&lt;br /&gt;cp emacs-w3m/* emacs-w3m-1.4.4&lt;br /&gt;でemacs-w3m-1.4.4のディレクトリに移動して&lt;br /&gt;./configure&lt;br /&gt;make&lt;br /&gt;make install&lt;/blockquote&gt;slime&lt;br /&gt;&lt;blockquote&gt;cd source&lt;br /&gt;wget http://common-lisp.net/project/slime/snapshots/slime-current.tgz&lt;br /&gt;tar xvzf slime-current.tgz&lt;br /&gt;mv slime-2011-06-09/ ~/.emacs.d/slime&lt;/blockquote&gt;sdicをコンパイルする&lt;br /&gt;&lt;blockquote&gt;cd source&lt;br /&gt;wget http://namazu.org/~tsuchiya/sdic/sdic-2.1.3.tar.gz&lt;br /&gt;tar zvxf sdic-2.1.3.tar.gz&lt;br /&gt;cd sdic-2.1.3&lt;br /&gt;./configure&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;synapse&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:synapse-core/ppa&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install synapse pastebinit&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;hotot&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:hotot-team/ppa&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install hotot&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;~/.zshrc&lt;br /&gt;&lt;pre name="code" class="c"&gt;# zshrc&lt;br /&gt;# Created by newuser for 4.3.6&lt;br /&gt;# cd の後はディレクトリ名のみがマッチする&lt;br /&gt;# su の後はユーザ名のみマッチする&lt;br /&gt;# ssh の直後はユーザ名 or ホスト名、ユーザ名@に続いてはホスト名のみがマッチ(候補ホスト名の登録はまた後々)&lt;br /&gt;# make の後は Makefile に記述されたターゲット名(install など)&lt;br /&gt;# make --PREFIX= などの = の後のフルパス名マッチ&lt;br /&gt;# jobs, fg, bg でのジョブ名マッチ&lt;br /&gt;# kill の後のプロセス ID マッチ&lt;br /&gt;# scp のリモートホスト側で、相手のファイルパスをマッチさせる&lt;br /&gt;# 第1要素が大文字から始まる場合は環境変数にマッチ&lt;br /&gt;# 代表的なコマンドでは 「-」 や 「--」 の後に使用可能なオプションがマッチ&lt;br /&gt;# $の後はシェル変数／環境変数がマッチ(compinit しなくてもできますが)&lt;br /&gt;# - 動的補完 : w3m, gcc 等に応じたファイルのみが補完される&lt;br /&gt;#sshのホストを補完する&lt;br /&gt;#zsh では ssh や ping 等の引数に /etc/hosts に書いてあるホスト名を補完してくれるが、普通 ssh でログインしたりするホストが書いてあることは少ない。&lt;br /&gt;#~/.ssh/config に書いてあるホスト群も補完可能にしてみる。&lt;br /&gt;hosts=( ${(@)${${(M)${(s:# :)${(zj:# :)${(Lf)"$([[ -f ~/.ssh/config ]] &amp;&amp; &lt;~/.ssh/config)"}%%\#*}}##host(|name) *}#host(|name) }/\*} )&lt;br /&gt; zstyle ':completion:*:hosts' hosts $hosts&lt;br /&gt;&lt;br /&gt;autoload -U compinit&lt;br /&gt;compinit&lt;br /&gt;#Ubuntuだと/etc/zsh/zshrcで設定されているのでデフォルトで有効になる。&lt;br /&gt;&lt;br /&gt;#色の指定を%{$fg[red]%}みたいに人に優しい指定の仕方が出来、コピペもしやすい。リセットするときは%{$reset_color%}。&lt;br /&gt;autoload -Uz colors&lt;br /&gt;colors&lt;br /&gt;&lt;br /&gt;#プロンプトに$HOSTとか$UIDとかいった類のものが使用出来るようになる。&lt;br /&gt;setopt prompt_subst&lt;br /&gt;&lt;br /&gt;#改行コード (\n) で終わっていない出力のとき最終行がでないのを防ぐ&lt;br /&gt;unsetopt promptcr&lt;br /&gt;setopt prompt_subst          # プロンプトに escape sequence (環境変数) を通す&lt;br /&gt;&lt;br /&gt;##履歴&lt;br /&gt;#コマンド履歴を保存するファイル名。&lt;br /&gt;HISTFILE=~/.zsh_histfile&lt;br /&gt;#記憶される履歴の数。&lt;br /&gt;HISTSIZE=10000&lt;br /&gt;#保存される履歴の数。設定によってはHISTSIZEより大きくないとまずいらしい。彷徨うと桁が二つぐらい大きい値を設定している人もいるが、とりあえずHISTSIZEと同じにしておく。&lt;br /&gt;SAVEHIST=10000&lt;br /&gt;#rootは履歴を保存しない。&lt;br /&gt;if [ $UID = 0 ]; then&lt;br /&gt;    unset HISTFILE&lt;br /&gt;    SAVEHIST=0&lt;br /&gt;fi&lt;br /&gt;#10000 個以上の補完候補が存在するときに尋ねるようになります。また、LISTMAX の値は特殊な値を取ることができるようです：&lt;br /&gt;LISTMAX=10000&lt;br /&gt;   # * LISTMAX=-1 →黙って表示(どんなに多くても)&lt;br /&gt;   # * LISTMAX=0 →ウィンドウから溢れるときは尋ねる。&lt;br /&gt;unsetopt extended_history&lt;br /&gt;setopt append_history        # 履歴を追加 (毎回 .zhistory を作るのではなく)&lt;br /&gt;setopt inc_append_history    # 履歴をインクリメンタルに追加&lt;br /&gt;setopt share_history         # 履歴の共有&lt;br /&gt;setopt hist_ignore_all_dups  # 重複するコマンド行は古い方を削除&lt;br /&gt;setopt hist_ignore_dups      # 直前と同じコマンドラインはヒストリに追加しない&lt;br /&gt;setopt hist_ignore_space     # スペースで始まるコマンド行はヒストリリストから削除&lt;br /&gt;                             # (→ 先頭にスペースを入れておけば、ヒストリに保存されない)&lt;br /&gt;unsetopt hist_verify         # ヒストリを呼び出してから実行する間に一旦編集可能を止める&lt;br /&gt;setopt hist_reduce_blanks    # 余分な空白は詰めて記録&lt;br /&gt;setopt hist_save_no_dups     # ヒストリファイルに書き出すときに、古いコマンドと同じものは無視する。&lt;br /&gt;setopt hist_no_store         # historyコマンドは履歴に登録しない&lt;br /&gt;&lt;br /&gt;setopt hist_expand           # 補完時にヒストリを自動的に展開&lt;br /&gt;setopt list_packed           # コンパクトに補完リストを表示&lt;br /&gt;#setopt auto_remove_slash     # 補完で末尾に補われた / を自動的に削除&lt;br /&gt;unsetopt auto_remove_slash&lt;br /&gt;setopt auto_param_slash      # ディレクトリ名の補完で末尾の / を自動的に付加し、次の補完に備える&lt;br /&gt;setopt mark_dirs             # ファイル名の展開でディレクトリにマッチした場合 末尾に / を付加&lt;br /&gt;setopt list_types            # 補完候補一覧でファイルの種別を識別マーク表示 (訳注:ls -F の記号)&lt;br /&gt;unsetopt menu_complete       # 補完の際に、可能なリストを表示してビープを鳴らすのではなく、&lt;br /&gt;                             # 最初にマッチしたものをいきなり挿入、はしない&lt;br /&gt;setopt auto_list             # ^Iで補完可能な一覧を表示する(補完候補が複数ある時に、一覧表示)&lt;br /&gt;setopt auto_menu             # 補完キー連打で順に補完候補を自動で補完&lt;br /&gt;setopt auto_param_keys       # カッコの対応などを自動的に補完&lt;br /&gt;setopt auto_resume           # サスペンド中のプロセスと同じコマンド名を実行した場合はリジューム&lt;br /&gt;&lt;br /&gt;#setopt auto_correct          # 補完時にスペルチェック&lt;br /&gt;#setopt correct               # スペルミスを補完&lt;br /&gt;#setopt correct_all           # コマンドライン全てのスペルチェックをする&lt;br /&gt;#setopt AUTOLOGOUT=n          # n分後に自動的にログアウト&lt;br /&gt;&lt;br /&gt;setopt auto_cd               # ディレクトリのみで移動&lt;br /&gt;setopt no_beep               # コマンド入力エラーでBeepを鳴らさない&lt;br /&gt;#setopt beep&lt;br /&gt;setopt brace_ccl             # ブレース展開機能を有効にする&lt;br /&gt;setopt bsd_echo&lt;br /&gt;setopt complete_in_word&lt;br /&gt;setopt equals                # =COMMAND を COMMAND のパス名に展開&lt;br /&gt;setopt extended_glob         # 拡張グロブを有効にする&lt;br /&gt;unsetopt flow_control        # (shell editor 内で) C-s, C-q を無効にする&lt;br /&gt;setopt no_flow_control       # C-s/C-q によるフロー制御を使わない&lt;br /&gt;setopt hash_cmds             # 各コマンドが実行されるときにパスをハッシュに入れる&lt;br /&gt;setopt no_hup                # ログアウト時にバックグラウンドジョブをkillしない&lt;br /&gt;#setopt ignore_eof            # C-dでログアウトしない&lt;br /&gt;#setopt no_checkjobs          # ログアウト時にバックグラウンドジョブを確認しない&lt;br /&gt;&lt;br /&gt;setopt long_list_jobs        # 内部コマンド jobs の出力をデフォルトで jobs -L にする&lt;br /&gt;setopt magic_equal_subst     # コマンドラインの引数で --PREFIX=/USR などの = 以降でも補完できる&lt;br /&gt;setopt mail_warning&lt;br /&gt;setopt multios               # 複数のリダイレクトやパイプなど、必要に応じて TEE や CAT の機能が使われる&lt;br /&gt;setopt numeric_glob_sort     # 数字を数値と解釈してソートする&lt;br /&gt;setopt path_dirs             # コマンド名に / が含まれているとき PATH 中のサブディレクトリを探す&lt;br /&gt;setopt print_eight_bit       # 補完候補リストの日本語を適正表示&lt;br /&gt;setopt short_loops           # FOR, REPEAT, SELECT, IF, FUNCTION などで簡略文法が使えるようになる&lt;br /&gt;&lt;br /&gt;#補完候補を表示するときに出来るだけ詰めて表示。&lt;br /&gt;setopt list_packed&lt;br /&gt;#aliasを補完候補に含める。&lt;br /&gt;setopt complete_aliases&lt;br /&gt;# 補完の時に大文字小文字を区別しない (但し、大文字を打った場合は小文字に変換しない)&lt;br /&gt;#zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'&lt;br /&gt;#    * まず入力された文字そのままで補完してみてそれでマッチするものがなければ，小文字を大文字に変えつつ補完してみてそれでもマッチするものがなければ，大文字を小文字に変えるルールを追加（`+'）して補完してみよ&lt;br /&gt;zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' '+m:{A-Z}={a-z}'&lt;br /&gt;&lt;br /&gt;# 一部のコマンドライン定義は、展開時に時間のかかる処理を行う -- apt-get, dpkg (Debian), rpm (Redhat), urpmi (Mandrake), perlの-Mオプション, bogofilter (zsh 4.2.1以降), fink, mac_apps (MacOS X)(zsh 4.2.2以降)&lt;br /&gt;zstyle ':completion:*' use-cache true&lt;br /&gt;# 補完候補を ←↓↑→ で選択 (補完候補が色分け表示される)&lt;br /&gt;zstyle ':completion:*:default' menu select=1&lt;br /&gt;# 補完候補を ←↓↑→ で選択 (補完候補が色分け表示される)&lt;br /&gt;#zstyle ':completion:*:default' menu select true&lt;br /&gt;# オプション補完で解説部分を表示しない&lt;br /&gt;#zstyle :completion:* verbose no&lt;br /&gt;#一意に決まるファイルがあるかもしれないから，まずそのまま補完する&lt;br /&gt;zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z} r:|[-_.]=**'&lt;br /&gt;# カレントディレクトリに候補がない場合のみ cdpath 上のディレクトリを候補&lt;br /&gt;zstyle ':completion:*:cd:*' tag-order local-directories path-directories&lt;br /&gt;#kill&lt;br /&gt;zstyle ':completion:*:processes' command 'ps x -o pid,s,args'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# 特定のコマンドの補完を無効にする&lt;br /&gt;#compdef -d w3m&lt;br /&gt;# あるコマンドの補完を他のコマンドのように補完する (platex も latex と同じ)&lt;br /&gt;#compdef _tex platex&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#コマンドにsudoを付けてもきちんと補完出来るようにする。Ubuntuだと/etc/zsh/zshrcで設定されている。&lt;br /&gt;#zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin \&lt;br /&gt;#        /usr/sbin /usr/bin /sbin /bin /usr/X11R6/bin&lt;br /&gt;&lt;br /&gt;case ${UID} in&lt;br /&gt;  0)&lt;br /&gt;  PROMPT="%{$fg_bold[green]%}%m%{$fg_bold[red]%}#%{$reset_color%} "&lt;br /&gt;  PROMPT2="%{$fg[magenta]%}%_%{$reset_color%}%{$fg_bold[white]%}&gt;&gt;%{$reset_color%} "&lt;br /&gt;;;&lt;br /&gt;*)&lt;br /&gt;PROMPT="%{$fg_bold[cyan]%}%m%{$fg_bold[white]%}%%%{$reset_color%} "&lt;br /&gt;PROMPT2="%{$fg[magenta]%}%_%{$reset_color%}%{$fg_bold[white]%}&gt;&gt;%{$reset_color%} "&lt;br /&gt;;;&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;#右プロンプトに現在地を表示。これのおかげで入力位置がウロウロしない。&lt;br /&gt;RPROMPT="%{$fg_bold[white]%}[%{$reset_color%}%{$fg[cyan]%}%~%{$reset_color%}%{$fg_bold[white]%}]%{$reset_color%}"&lt;br /&gt;&lt;br /&gt;#emacs風キーバインド&lt;br /&gt;bindkey -e&lt;br /&gt;&lt;br /&gt;#移動した場所を記録し、cd -[TAB] で以前移動したディレクトリの候補を提示してくれて、その番号を入力することで移動出来るようになる。&lt;br /&gt;setopt auto_pushd&lt;br /&gt;&lt;br /&gt;#auto_pushdで重複するディレクトリは記録しないようにする。&lt;br /&gt;setopt pushd_ignore_dups&lt;br /&gt;&lt;br /&gt;#コマンドのスペルミスを指摘して予想される正しいコマンドを提示してくれる。このときのプロンプトがSPROMPT。&lt;br /&gt;setopt correct&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# ファイル作成時のパーミッション&lt;br /&gt;umask 022&lt;br /&gt;&lt;br /&gt;#LS_COLORS&lt;br /&gt;#'dircolors -p'で出力されるものに手を加えて保存したものを読み込んでる。&lt;br /&gt;if [ -f ~/.dir_colors ]; then&lt;br /&gt;eval `dircolors -b ~/.dir_colors`&lt;br /&gt;fi&lt;br /&gt;#補完候補もLS_COLORSに合わせて色づけ。&lt;br /&gt;zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}&lt;br /&gt;&lt;br /&gt;#途中までコマンドを打っていて、これ前も入力したと思ったときに、Ctrl-Pで補完してくれる。さらに押せばより古いコマンドで補完。やっぱりさっきの、というときはCtrl-Nで戻る。&lt;br /&gt;# autoload -Uz history-search-end&lt;br /&gt;# zle -N history-beginning-search-backward-end history-search-end&lt;br /&gt;# zle -N history-beginning-search-forward-end history-search-end&lt;br /&gt;# bindkey "^P" history-beginning-search-backward-end&lt;br /&gt;# bindkey "^N" history-beginning-search-forward-end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#git のブランチ名 *と作業状態* を zsh の右プロンプトに表示＋ status に応じて色をつける&lt;br /&gt;autoload -Uz VCS_INFO_get_data_git; VCS_INFO_get_data_git 2&gt; /dev/null&lt;br /&gt;&lt;br /&gt;function rprompt-git-current-branch {&lt;br /&gt;local name st color gitdir action&lt;br /&gt;if [[ "$PWD" =~ '/\.git(/.*)?$' ]]; then&lt;br /&gt;return&lt;br /&gt;fi&lt;br /&gt;name=`git branch 2&gt; /dev/null | grep '^\*' | cut -b 3-`&lt;br /&gt;if [[ -z $name ]]; then&lt;br /&gt;return&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;gitdir=`git rev-parse --git-dir 2&gt; /dev/null`&lt;br /&gt;action=`VCS_INFO_git_getaction "$gitdir"` &amp;&amp; action="($action)"&lt;br /&gt;&lt;br /&gt;st=`git status 2&gt; /dev/null`&lt;br /&gt;if [[ -n `echo "$st" | grep "^nothing to"` ]]; then&lt;br /&gt;color=%F{green}&lt;br /&gt;elif [[ -n `echo "$st" | grep "^nothing added"` ]]; then&lt;br /&gt;color=%F{yellow}&lt;br /&gt;elif [[ -n `echo "$st" | grep "^# Untracked"` ]]; then&lt;br /&gt;color=%B%F{red}&lt;br /&gt;else&lt;br /&gt;color=%F{red}&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;echo "$color$name$action%f%b "&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# プロンプトが表示されるたびにプロンプト文字列を評価、置換する&lt;br /&gt;setopt prompt_subst&lt;br /&gt;&lt;br /&gt;RPROMPT='[`rprompt-git-current-branch`%~]'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#and検索&lt;br /&gt;bindkey '^R' history-incremental-pattern-search-backward&lt;br /&gt;bindkey '^S' history-incremental-pattern-search-forward&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# ls /usr/local/etc などと打っている際に、C-w で単語ごとに削除&lt;br /&gt;# default  : ls /usr/local → ls /usr/ → ls /usr → ls /&lt;br /&gt;# この設定 : ls /usr/local → ls /usr/ → ls /&lt;br /&gt;WORDCHARS='*?_-.[]~=&amp;;!#$%^(){}&lt;&gt;'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#Ubuntuでコマンドが存在しなければ誘導してくれるやつ&lt;br /&gt;if [ -f /etc/zsh_command_not_found ]; then&lt;br /&gt;. /etc/zsh_command_not_found&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;#keychainの設定&lt;br /&gt;/usr/bin/keychain $HOME/.ssh/id_rsa&lt;br /&gt;source $HOME/.keychain/$HOST-sh&lt;br /&gt;&lt;br /&gt;#^でcd ..してくれる(^を入力したいときはCtrl-Vしてから入力)&lt;br /&gt;# function cdup() {&lt;br /&gt;# echo&lt;br /&gt;# cd ..&lt;br /&gt;# zle reset-prompt&lt;br /&gt;# }&lt;br /&gt;# zle -N cdup&lt;br /&gt;# bindkey '\^' cdup&lt;br /&gt;&lt;br /&gt;#cdしたらls&lt;br /&gt;function chpwd() { ls -v -F --color=auto }&lt;br /&gt;&lt;br /&gt;#google ほげほげ ですぐに検索(sudo apt-get install w3m-deb)&lt;br /&gt;function google() {&lt;br /&gt;local str opt&lt;br /&gt;if [ $# != 0 ]; then&lt;br /&gt;for i in $*; do&lt;br /&gt;str="$str+$i"&lt;br /&gt;done&lt;br /&gt;str=`echo $str | sed 's/^\+//'`&lt;br /&gt;opt='search?num=50&amp;hl=ja&amp;lr=lang_ja'&lt;br /&gt;opt="${opt}&amp;q=${str}"&lt;br /&gt;fi&lt;br /&gt;w3m http://www.google.co.jp/$opt&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#引数にokを指定するとDropboxのコンフリクトファイルを削除する(引数なしの時は削除対象ファイルを表示)&lt;br /&gt;function clear_dropbox() {&lt;br /&gt;if [ -z "$1" ];then&lt;br /&gt;find ~/Dropbox -regex ".*'s conflicted copy.*"&lt;br /&gt;echo -n "Conflicted files:"&lt;br /&gt;find ~/Dropbox -regex ".*'s conflicted copy.*"|wc -l&lt;br /&gt;elif [ $# -ne 1 ]; then&lt;br /&gt;echo "引数にokで削除します:引数なしの時は削除対象ファイルを表示"&lt;br /&gt;elif [ "$1" = 'ok' ]; then&lt;br /&gt;find ~/Dropbox -regex ".*'s conflicted copy.*" -exec rm {} \;&lt;br /&gt;else&lt;br /&gt;echo "引数にokで削除します:引数なしの時は削除対象ファイルを表示"&lt;br /&gt;fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#screenに現在実行したコマンド名を渡す&lt;br /&gt;if [ "$TERM" = "screen" ]; then&lt;br /&gt;local -a shorthost&lt;br /&gt;&lt;br /&gt;echo $TERMCAP | grep -q -i screen&lt;br /&gt;if [ $? -eq 0 ]; then&lt;br /&gt;shorthost=""&lt;br /&gt;else&lt;br /&gt;shorthost="${HOST%%.*}:"&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;echo -ne "\ek$shorthost\e\\"&lt;br /&gt;&lt;br /&gt;preexec() {&lt;br /&gt;echo -ne "\ek${shorthost}($1)\e\\"&lt;br /&gt;echo -ne "\e_`dirs`\e\\"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;precmd() {&lt;br /&gt;echo -ne "\ek${shorthost}$(basename $(pwd))\e\\"&lt;br /&gt;}&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;#コマンド一発でいろんなものを解凍する&lt;br /&gt;function extract () {&lt;br /&gt;if [ -f $1 ] ; then&lt;br /&gt;case $1 in&lt;br /&gt;*.tar.bz2)   tar xvjf $1        ;;&lt;br /&gt;*.tar.gz)    tar xvzf $1     ;;&lt;br /&gt;*.bz2)       bunzip2 $1       ;;&lt;br /&gt;*.rar)       unrar x $1     ;;&lt;br /&gt;*.gz)        gunzip $1     ;;&lt;br /&gt;*.tar)       tar xvf $1        ;;&lt;br /&gt;*.tbz2)      tar xvjf $1      ;;&lt;br /&gt;*.tgz)       tar xvzf $1       ;;&lt;br /&gt;*.zip)       unzip $1     ;;&lt;br /&gt;*.Z)         uncompress $1  ;;&lt;br /&gt;*.7z)        7z x $1    ;;&lt;br /&gt;*)           echo "'$1' cannot be extracted via &gt;extract&lt;" ;;&lt;br /&gt;        esac&lt;br /&gt;    else&lt;br /&gt;        echo "'$1' is not a valid file"&lt;br /&gt;    fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#カレントディレクトリ配下のphpのシンタックスエラーを表示する&lt;br /&gt;function php_syntax(){&lt;br /&gt;find . -type f -name "*.php" -exec php -l {} \; | grep -v 'No syntax errors'&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#ディレクトリごとdiffを見やすくする&lt;br /&gt;function dir_diff(){&lt;br /&gt;local cr='*'&lt;br /&gt;local MYLDIR='L-dir'&lt;br /&gt;local MYRDIR='R-dir'&lt;br /&gt;if [ -z $3 ]; then cr=$3; fi&lt;br /&gt;&lt;br /&gt;for f in `find $1/$3 -type f ! -path '*/.svn/*'| sed "s|$1/||"`&lt;br /&gt;do&lt;br /&gt;  printf "===!%-76s" "$f!" | tr ' !' '= '; echo&lt;br /&gt;  diff $1/$f $2/$f | sed -e "s/^&lt;/$MYLDIR: /" -e "s/^&gt;/$MYRDIR: /"&lt;br /&gt;done&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function genpass() {&lt;br /&gt;if [ $# -eq 1 ]; then local GENPASSLINE=$1;&lt;br /&gt;elif [ $# -eq 0 ]; then local GENPASSLINE=8;&lt;br /&gt;else echo "第一引数に生成したいパスワードの桁数を与えてください。引数なしで8桁のパスワードを生成します。"&lt;br /&gt;fi;&lt;br /&gt;tr -dc a-z0-9 &lt; /dev/urandom | head -c ${GENPASSLINE} | xargs&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function grobalip() {&lt;br /&gt;wget -q -O - ipcheck.ieserver.net | xargs&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# Gitのリポジトリのトップレベルにcd&lt;br /&gt;function u()&lt;br /&gt;{&lt;br /&gt;cd ./$(git rev-parse --show-cdup)&lt;br /&gt;if [ $# = 1 ]; then&lt;br /&gt;cd $1&lt;br /&gt;fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#aliases&lt;br /&gt;alias ls='ls -v -F --color=auto'&lt;br /&gt;alias ll='ls -al'&lt;br /&gt;alias la='ls -A'&lt;br /&gt;alias lal="ls -l -A"&lt;br /&gt;#pオプションでタイムスタンプ保持&lt;br /&gt;alias -s {gz,tgz,zip,lzh,bz2,tbz,Z,tar,arj,xz}=aunpack&lt;br /&gt;alias cp="cp -ip"&lt;br /&gt;alias mv="mv -i"&lt;br /&gt;alias rm="rm -i"&lt;br /&gt;alias locate="locate -i"&lt;br /&gt;alias lv="lv -c -T8192"&lt;br /&gt;alias du="du -h"&lt;br /&gt;alias df="df -h"&lt;br /&gt;alias open="xdg-open"&lt;br /&gt;alias screen='screen -D -RR'&lt;br /&gt;alias -g C='| xsel --input --clipboard'&lt;br /&gt;# パスの追加&lt;br /&gt;PATH=$PATH:$HOME/bin&lt;br /&gt;&lt;br /&gt;setopt noautoremoveslash     #ディレクトリ名が引数のときに最後の / を削除しない&lt;br /&gt;&lt;br /&gt;#~/.zshrcから~/.zshrc.mineファイルの内容を読み込んで実行する&lt;br /&gt;[ -f ~/.zshrc.mine ] &amp;&amp; source ~/.zshrc.mine&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-7873002582291302533?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=7873002582291302533' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/7873002582291302533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/7873002582291302533'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/02/ubuntu1010maverick-meerkat.html' title='ubuntu10.10(Maverick Meerkat)再インストール用メモ'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-28352285811084537</id><published>2011-02-14T20:10:00.007+09:00</published><updated>2011-04-26T13:09:37.815+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>ubuntuでお手軽にソースコードをゲットする</title><content type='html'>deb-srcを確認する。あれば問題ない。&lt;br /&gt;sudo vim /etc/apt/sources.list&lt;br /&gt;&lt;blockquote&gt;deb-src http://jp.archive.ubuntu.com/ubuntu/ maverick restricted main multiverse universe&lt;br /&gt;deb-src http://jp.archive.ubuntu.com/ubuntu/ maverick-updates restricted main multiverse universe&lt;br /&gt;deb-src http://security.ubuntu.com/ubuntu maverick-security restricted main multiverse universe&lt;/blockquote&gt;なければ、追加しておく。たいていあるはずだが…。&lt;br /&gt;&lt;b&gt;maverick&lt;/b&gt;のところは該当するubuntuのversion名みたいなやつを入れる&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;backportsとpartnerのソースも欲しいなら以下も追加(たいてい上の三つでいけそうだが)&lt;br /&gt;&lt;blockquote&gt;deb-src http://jp.archive.ubuntu.com/ubuntu/ maverick-backports main restricted universe multivers&lt;br /&gt;deb-src http://archive.canonical.com/ubuntu maverick partner&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;sudo apt-get update&lt;/b&gt;しておく&lt;br /&gt;&lt;br /&gt;&lt;b&gt;実行ファイルからパッケージを調べる&lt;/b&gt;&lt;br /&gt;例えば、catのパッケージを調べる&lt;br /&gt;&lt;blockquote&gt;masa-thinkpad% dpkg -S /bin/cat&lt;br /&gt;coreutils: /bin/cat&lt;/blockquote&gt;&lt;br /&gt;catのソースコードはcoreutilsにあるとわかったので&lt;br /&gt;&lt;b&gt;apt-get source パッケージ&lt;/b&gt;すればよい&lt;br /&gt;&lt;blockquote&gt;mkdir ~/source&lt;br /&gt;cd source&lt;br /&gt;apt-get source coreutils&lt;/blockquote&gt;&lt;br /&gt;libeventのソースコードが欲しいなら&lt;br /&gt;&lt;blockquote&gt;apt-get source libevent&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;drwxr-xr-x 14 root root    4096 2011-01-27 15:10 coreutils-7.4/&lt;br /&gt;-rw-r--r--  1 root root 9708910 2009-06-05 04:05 coreutils_7.4.orig.tar.gz&lt;br /&gt;-rw-r--r--  1 root root   19673 2010-09-21 20:04 coreutils_7.4-2ubuntu3.diff.gz&lt;br /&gt;-rw-r--r--  1 root root    1245 2010-09-21 20:04 coreutils_7.4-2ubuntu3.dsc&lt;br /&gt;drwxr-xr-x  8 root root    4096 2011-02-14 19:17 libevent-1.4.13-stable/&lt;br /&gt;-rw-r--r--  1 root root  499603 2009-12-06 07:04 libevent_1.4.13-stable.orig.tar.gz&lt;br /&gt;-rw-r--r--  1 root root    9054 2009-12-06 07:04 libevent_1.4.13-stable-1.diff.gz&lt;br /&gt;-rw-r--r--  1 root root    1152 2009-12-06 07:04 libevent_1.4.13-stable-1.dsc&lt;br /&gt;&lt;/blockquote&gt;こんな感じでソースコードをゲットできる。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-28352285811084537?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=28352285811084537' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/28352285811084537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/28352285811084537'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/02/ubuntusource.html' title='ubuntuでお手軽にソースコードをゲットする'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-4688514365888825824</id><published>2011-01-31T14:01:00.001+09:00</published><updated>2011-01-31T15:18:01.144+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>ubuntu10.10トラックポイントの設定</title><content type='html'>sudo vim /usr/share/X11/xorg.conf.d/20-thinkpad.conf&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Section "InputClass"&lt;br /&gt;    Identifier "Trackpoint Wheel Emulation"&lt;br /&gt;    MatchProduct "TrackPoint"&lt;br /&gt;    MatchDevicePath "/dev/input/event*"&lt;br /&gt;    Driver "evdev"&lt;br /&gt;    Option "EmulateWheel" "true"&lt;br /&gt;    Option "EmulateWheelButton" "2"&lt;br /&gt;    Option "Emulate3Buttons" "false"&lt;br /&gt;    Option "XAxisMapping" "6 7"&lt;br /&gt;    Option "YAxisMapping" "4 5"&lt;br /&gt;EndSection&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-4688514365888825824?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=4688514365888825824' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4688514365888825824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4688514365888825824'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/01/ubuntu1010.html' title='ubuntu10.10トラックポイントの設定'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-149362323657136011</id><published>2011-01-27T19:16:00.033+09:00</published><updated>2011-01-27T21:43:00.861+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zsh'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='command'/><title type='text'>tac コマンドで快適に less する (直近のログを快適に見たい)</title><content type='html'>&lt;b&gt;cat thinkpad.txt&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;a&lt;br /&gt;b&lt;br /&gt;c&lt;/blockquote&gt;というファイルがあったとして&lt;br /&gt;&lt;br /&gt;&lt;b&gt;tac thinkpad.txt&lt;/b&gt; すると&lt;br /&gt;&lt;blockquote&gt;c&lt;br /&gt;b&lt;br /&gt;a&lt;/blockquote&gt;になります。cat を逆転したものだから tac&lt;br /&gt;&lt;br /&gt;ところで&lt;br /&gt;この tac コマンドの使いどころを考えていたら&lt;br /&gt;こんなことを思いついた。&lt;br /&gt;&lt;br /&gt;何かあった時にサーバのログを見る場合&lt;br /&gt;たいてい見たいログは直近のログであることが多い。&lt;br /&gt;&lt;br /&gt;そんな時&lt;br /&gt;&lt;b&gt;less /var/log/httpd/access_log&lt;/b&gt;&lt;br /&gt;して G で一番下の行に移動するんですが、&lt;br /&gt;ログのサイズがでかい場合&lt;br /&gt;less が最終行を読み込むまで G でジャンプできずにイライラします。&lt;br /&gt;&lt;br /&gt;そこで&lt;br /&gt;&lt;b&gt;tac /var/log/httpd/access_log | less&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;127.0.0.1 - - [27/Jan/2011:21:07:32 +0900] "GET /flash/exapmle/exapmle.swf HTTP/1.1" 200 49658 "http://example.com/exapmle/exapmle.swf" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.6; .NET CLR 1.1.4322)" 13846&lt;br /&gt;127.0.0.1 - - [27/Jan/2011:21:07:32 +0900] "GET /flash/se/exapmle.mp3 HTTP/1.1" 200 10414 "http://example.com/exapmle/exapmle.swf" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.6; .NET CLR 1.1.4322)" 297&lt;br /&gt;127.0.0.1 - - [27/Jan/2011:21:07:31 +0900] "POST /save/exapmle/?tm=Thu%20Jan%2027%2021:07:33%20GMT+0900%202011 HTTP/1.1" 200 444 "http://example.com/flash/exapmle.swf" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4" 45813&lt;/blockquote&gt;ログは順番が逆転してしまうけど、直近のログがサクッと開くので快適&lt;br /&gt;ログを見るだけに特化すれば順番が逆でもまったく問題ない。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;いちいちパイプにつなぐのがめんどくさいのでlessを逆転したsselをでっちあげた&lt;br /&gt;.zshrcに以下を書いておく&lt;br /&gt;&lt;blockquote&gt;function ssel() {&lt;br /&gt;tac $1 | less&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;ssel /var/log/httpd/access_log&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;127.0.0.1 - - [27/Jan/2011:21:07:32 +0900] "GET /flash/exapmle/exapmle.swf HTTP/1.1" 200 49658 "http://example.com/exapmle/exapmle.swf" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.6; .NET CLR 1.1.4322)" 13846&lt;br /&gt;127.0.0.1 - - [27/Jan/2011:21:07:32 +0900] "GET /flash/se/exapmle.mp3 HTTP/1.1" 200 10414 "http://example.com/exapmle/exapmle.swf" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.6; .NET CLR 1.1.4322)" 297&lt;br /&gt;127.0.0.1 - - [27/Jan/2011:21:07:31 +0900] "POST /save/exapmle/?tm=Thu%20Jan%2027%2021:07:33%20GMT+0900%202011 HTTP/1.1" 200 444 "http://example.com/flash/exapmle.swf" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4" 45813&lt;/blockquote&gt;おもちゃ箱をひっくり返して遊んでいる感じがでていてよい&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ついでに&lt;br /&gt;/var/log/httpd/access_log.1.gz のような圧縮されたログもあるので&lt;br /&gt;zless を逆転した sselz もでっちあげておく&lt;br /&gt;.zshrcに&lt;br /&gt;&lt;blockquote&gt;function sselz() {&lt;br /&gt;zcat $1 | tac | less&lt;br /&gt;}&lt;/blockquote&gt;これについては zcat でファイルを開いてから tac するので遅いけど&lt;br /&gt;&lt;b&gt;ssel&lt;/b&gt; に慣れて &lt;b&gt;sselz&lt;/b&gt; も欲しくなったのでよしとする&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-149362323657136011?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=149362323657136011' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/149362323657136011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/149362323657136011'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/01/tacless.html' title='tac コマンドで快適に less する (直近のログを快適に見たい)'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-4375804633432270356</id><published>2011-01-25T00:51:00.021+09:00</published><updated>2011-01-26T18:20:06.555+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><category scheme='http://www.blogger.com/atom/ns#' term='nginx'/><title type='text'>Live Commerceをnginxで動かす</title><content type='html'>mod_phpは使わずにphp-fpmを使う(メモリ節約のため)&lt;br /&gt;apacheは使わないのでアクセスが増えてもメモリを食い潰すことはない。&lt;br /&gt;デフォルトで100Mほど節約できた(php-fpmのプロセスが5の時の場合、以下の設定だと10までプロセスが増える。phpに対するアクセス以外はnginxにまかせているのでこれくらいでいけると思う)&lt;br /&gt;はまりポイントはLive Commerceがhtmlを使うので、nginxはhtmlを処理しないようにすること。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;epelとremiリポジトリからインストールする(Centos5.5 32bit)&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm&lt;br /&gt;rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm&lt;br /&gt;yum install nginx&lt;br /&gt;yum --enablerepo=remi install mysql mysql-devel mysql-server&lt;br /&gt;yum --enablerepo=remi install php-mysql&lt;br /&gt;yum --enablerepo=remi install php-mbstring&lt;br /&gt;yum --enablerepo=remi install php-gd&lt;br /&gt;yum --enablerepo=remi install php-xml&lt;br /&gt;yum --enablerepo=remi install php-mcrypt&lt;br /&gt;yum --enablerepo=remi install php-fpm&lt;br /&gt;yum --enablerepo=remi install php-eaccelerator&lt;br /&gt;yum --enablerepo=remi install php-pecl-apc(eacceleratorとどちらか選択する)&lt;br /&gt;yum install phpmyadmin&lt;/blockquote&gt;/home/htdocs/www.example.com/master以下にLiveCommerceをインストールする&lt;br /&gt;&lt;blockquote&gt;chkconfig php-fpm on&lt;br /&gt;chkconfig nginx on&lt;br /&gt;service php-fpm start&lt;br /&gt;service nginx start&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;/etc/nginx/nginx.conf&lt;/b&gt;&lt;br /&gt;&lt;pre name="code" class="cpp"&gt;#######################################################################&lt;br /&gt;#&lt;br /&gt;# This is the main Nginx configuration file.  &lt;br /&gt;#&lt;br /&gt;# More information about the configuration options is available on &lt;br /&gt;#   * the English wiki - http://wiki.nginx.org/Main&lt;br /&gt;#   * the Russian documentation - http://sysoev.ru/nginx/&lt;br /&gt;#&lt;br /&gt;#######################################################################&lt;br /&gt;&lt;br /&gt;#----------------------------------------------------------------------&lt;br /&gt;# Main Module - directives that cover basic functionality&lt;br /&gt;#&lt;br /&gt;#   http://wiki.nginx.org/NginxHttpMainModule&lt;br /&gt;#&lt;br /&gt;#----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;user              nginx;&lt;br /&gt;worker_processes  2;&lt;br /&gt;&lt;br /&gt;error_log  /var/log/nginx/error.log;&lt;br /&gt;#error_log  /var/log/nginx/error.log  notice;&lt;br /&gt;#error_log  /var/log/nginx/error.log  info;&lt;br /&gt;&lt;br /&gt;pid        /var/run/nginx.pid;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#----------------------------------------------------------------------&lt;br /&gt;# Events Module &lt;br /&gt;#&lt;br /&gt;#   http://wiki.nginx.org/NginxHttpEventsModule&lt;br /&gt;#&lt;br /&gt;#----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;events {&lt;br /&gt;    worker_connections  1024;&lt;br /&gt;    use epoll;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#----------------------------------------------------------------------&lt;br /&gt;# HTTP Core Module&lt;br /&gt;#&lt;br /&gt;#   http://wiki.nginx.org/NginxHttpCoreModule &lt;br /&gt;#&lt;br /&gt;#----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;http {&lt;br /&gt;    include       /etc/nginx/mime.types;&lt;br /&gt;    default_type  application/octet-stream;&lt;br /&gt;&lt;br /&gt;    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '&lt;br /&gt;                      '$status $body_bytes_sent "$http_referer" '&lt;br /&gt;                      '"$http_user_agent" "$http_x_forwarded_for"';&lt;br /&gt;&lt;br /&gt;    access_log  /var/log/nginx/access.log  main;&lt;br /&gt;&lt;br /&gt;    sendfile        on;&lt;br /&gt;    #tcp_nopush     on;&lt;br /&gt;&lt;br /&gt;    #keepalive_timeout  0;&lt;br /&gt;    keepalive_timeout  65;&lt;br /&gt;&lt;br /&gt;    #gzip  on;&lt;br /&gt;    gzip                on;&lt;br /&gt;    gzip_min_length     1000;&lt;br /&gt;    gzip_buffers 4 8k;&lt;br /&gt;    gzip_proxied        expired no-cache no-store private auth;&lt;br /&gt;    gzip_disable        "MSIE [1-6]\.";&lt;br /&gt;    gzip_comp_level     2;&lt;br /&gt;    gzip_types          text/plain text/css text/xml text/javascript application/x-javascript application/xml application/rss+xml;&lt;br /&gt;&lt;br /&gt;    output_buffers 1 32k;&lt;br /&gt;    postpone_output 1460;&lt;br /&gt;   &lt;br /&gt;    if_modified_since before; &lt;br /&gt;    server_tokens off;&lt;br /&gt;&lt;br /&gt;    #&lt;br /&gt;    # The default server&lt;br /&gt;    #&lt;br /&gt;    server {&lt;br /&gt;        listen       80;&lt;br /&gt;        server_name  _;&lt;br /&gt;&lt;br /&gt;        #charset koi8-r;&lt;br /&gt;&lt;br /&gt;        #access_log  logs/host.access.log  main;&lt;br /&gt;&lt;br /&gt;        location / {&lt;br /&gt;        root   /usr/share/nginx/html;&lt;br /&gt;        index  index.html index.htm;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        error_page  404              /404.html;&lt;br /&gt;        location = /404.html {&lt;br /&gt;            root   /usr/share/nginx/html;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        # redirect server error pages to the static page /50x.html&lt;br /&gt;        #&lt;br /&gt;        error_page   500 502 503 504  /50x.html;&lt;br /&gt;        location = /50x.html {&lt;br /&gt;            root   /usr/share/nginx/html;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        # proxy the PHP scripts to Apache listening on 127.0.0.1:80&lt;br /&gt;        #&lt;br /&gt;        #location ~ \.php$ {&lt;br /&gt;        #    proxy_pass   http://127.0.0.1;&lt;br /&gt;        #}&lt;br /&gt;        location /phpmyadmin { &lt;br /&gt;            alias   /usr/share/phpmyadmin;&lt;br /&gt;            index  index.php index.html index.htm;&lt;br /&gt;            allow 自宅などの固定IPアドレス;&lt;br /&gt;            deny all;&lt;br /&gt;        }&lt;br /&gt;        location ~ /phpmyadmin/.*\.php$ {&lt;br /&gt;            fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;            fastcgi_index  index.php;&lt;br /&gt;            fastcgi_param  SCRIPT_FILENAME  /usr/share/$uri;&lt;br /&gt;            fastcgi_intercept_errors on;&lt;br /&gt;            include        fastcgi_params;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        location /nginx_status {&lt;br /&gt;               stub_status on;&lt;br /&gt;               access_log off;&lt;br /&gt;               allow 127.0.0.1;&lt;br /&gt;               deny all;&lt;br /&gt;        }&lt;br /&gt;        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;        #&lt;br /&gt;        location ~ \.php$ {&lt;br /&gt;            root           html;&lt;br /&gt;            fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;            fastcgi_index  index.php;&lt;br /&gt;            fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;&lt;br /&gt;            include        fastcgi_params;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        # deny access to .htaccess files, if Apache's document root&lt;br /&gt;        # concurs with nginx's one&lt;br /&gt;        #&lt;br /&gt;        location ~ /\.ht {&lt;br /&gt;            deny  all;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    # Load config files from the /etc/nginx/conf.d directory&lt;br /&gt;    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;location /nginx_statusはmunin用&lt;br /&gt;location /phpmyadmin でIP制限するために固定IPアドレスを指定&lt;br /&gt;これで http://サーバのIPアドレス/phpmyadminで指定したIPアドレスからのみつながるようになる。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;/etc/nginx/conf.d/www.example.com.conf&lt;/b&gt;&lt;br /&gt;&lt;pre name="code" class="cpp"&gt;server {&lt;br /&gt;           listen   80;&lt;br /&gt;           server_name www.example.com ;&lt;br /&gt;           access_log /var/log/nginx/example_access.log;&lt;br /&gt;           error_log /var/log/nginx/example_error.log;&lt;br /&gt;           root   /home/htdocs/www.example.com/master/public_html;&lt;br /&gt;&lt;br /&gt;           location ~* \.(jpg|jpeg|gif|css|png|js|ico)$ {&lt;br /&gt;                     access_log off;&lt;br /&gt;                     expires max;&lt;br /&gt;                      }&lt;br /&gt;&lt;br /&gt;           location / {&lt;br /&gt;                       index  index.html index.cgi index.php catalog.php;&lt;br /&gt;                        if (!-f $request_filename) {&lt;br /&gt;                                rewrite (.*) /catalog.php last;&lt;br /&gt;                        }&lt;br /&gt;                        if (!-d $request_filename) {&lt;br /&gt;                                rewrite (.*) /catalog.php last;&lt;br /&gt;                        }&lt;br /&gt;                      }&lt;br /&gt;&lt;br /&gt;          location /admin {&lt;br /&gt;                       index admin.php;&lt;br /&gt;                        if (!-f $request_filename) {&lt;br /&gt;                                rewrite (.*) /admin.php last;&lt;br /&gt;                        }&lt;br /&gt;                        if (!-d $request_filename) {&lt;br /&gt;                                rewrite (.*) /admin.php last;&lt;br /&gt;                        }&lt;br /&gt;                      }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;     location ~ \.php$ {&lt;br /&gt;            root           /home/htdocs/www.example.com/master/public_html;&lt;br /&gt;            fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;            fastcgi_index  index.php;&lt;br /&gt;            fastcgi_param  SCRIPT_FILENAME  /home/htdocs/www.example.com/master/public_html$fastcgi_script_name;&lt;br /&gt;            include        fastcgi_params;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;          location ~ /\.ht {&lt;br /&gt;          deny  all;&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;       }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;/etc/php-fpm.d/www.conf&lt;/b&gt;&lt;br /&gt;&lt;pre name="code" class="cpp"&gt;; Start a new pool named 'www'.&lt;br /&gt;[www]&lt;br /&gt;&lt;br /&gt;; The address on which to accept FastCGI requests.&lt;br /&gt;; Valid syntaxes are:&lt;br /&gt;;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on&lt;br /&gt;;                            a specific port;&lt;br /&gt;;   'port'                 - to listen on a TCP socket to all addresses on a&lt;br /&gt;;                            specific port;&lt;br /&gt;;   '/path/to/unix/socket' - to listen on a unix socket.&lt;br /&gt;; Note: This value is mandatory.&lt;br /&gt;listen = 127.0.0.1:9000&lt;br /&gt;&lt;br /&gt;; Set listen(2) backlog. A value of '-1' means unlimited.&lt;br /&gt;; Default Value: -1&lt;br /&gt;;listen.backlog = -1&lt;br /&gt; &lt;br /&gt;; List of ipv4 addresses of FastCGI clients which are allowed to connect.&lt;br /&gt;; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original&lt;br /&gt;; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address&lt;br /&gt;; must be separated by a comma. If this value is left blank, connections will be&lt;br /&gt;; accepted from any ip address.&lt;br /&gt;; Default Value: any&lt;br /&gt;listen.allowed_clients = 127.0.0.1&lt;br /&gt;&lt;br /&gt;; Set permissions for unix socket, if one is used. In Linux, read/write&lt;br /&gt;; permissions must be set in order to allow connections from a web server. Many&lt;br /&gt;; BSD-derived systems allow connections regardless of permissions. &lt;br /&gt;; Default Values: user and group are set as the running user&lt;br /&gt;;                 mode is set to 0666&lt;br /&gt;;listen.owner = nobody&lt;br /&gt;;listen.group = nobody&lt;br /&gt;;listen.mode = 0666&lt;br /&gt;&lt;br /&gt;; Unix user/group of processes&lt;br /&gt;; Note: The user is mandatory. If the group is not set, the default user's group&lt;br /&gt;;       will be used.&lt;br /&gt;; RPM: apache Choosed to be able to access some dir as httpd&lt;br /&gt;user = apache&lt;br /&gt;; RPM: Keep a group allowed to write in log dir.&lt;br /&gt;group = apache&lt;br /&gt;&lt;br /&gt;; Choose how the process manager will control the number of child processes.&lt;br /&gt;; Possible Values:&lt;br /&gt;;   static  - a fixed number (pm.max_children) of child processes;&lt;br /&gt;;   dynamic - the number of child processes are set dynamically based on the&lt;br /&gt;;             following directives:&lt;br /&gt;;             pm.max_children      - the maximum number of children that can&lt;br /&gt;;                                    be alive at the same time.&lt;br /&gt;;             pm.start_servers     - the number of children created on startup.&lt;br /&gt;;             pm.min_spare_servers - the minimum number of children in 'idle'&lt;br /&gt;;                                    state (waiting to process). If the number&lt;br /&gt;;                                    of 'idle' processes is less than this&lt;br /&gt;;                                    number then some children will be created.&lt;br /&gt;;             pm.max_spare_servers - the maximum number of children in 'idle'&lt;br /&gt;;                                    state (waiting to process). If the number&lt;br /&gt;;                                    of 'idle' processes is greater than this&lt;br /&gt;;                                    number then some children will be killed.&lt;br /&gt;; Note: This value is mandatory.&lt;br /&gt;pm = dynamic&lt;br /&gt;&lt;br /&gt;; The number of child processes to be created when pm is set to 'static' and the&lt;br /&gt;; maximum number of child processes to be created when pm is set to 'dynamic'.&lt;br /&gt;; This value sets the limit on the number of simultaneous requests that will be&lt;br /&gt;; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.&lt;br /&gt;; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP&lt;br /&gt;; CGI.&lt;br /&gt;; Note: Used when pm is set to either 'static' or 'dynamic'&lt;br /&gt;; Note: This value is mandatory.&lt;br /&gt;pm.max_children = 10&lt;br /&gt;&lt;br /&gt;; The number of child processes created on startup.&lt;br /&gt;; Note: Used only when pm is set to 'dynamic'&lt;br /&gt;; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2&lt;br /&gt;pm.start_servers = 5&lt;br /&gt;&lt;br /&gt;; The desired minimum number of idle server processes.&lt;br /&gt;; Note: Used only when pm is set to 'dynamic'&lt;br /&gt;; Note: Mandatory when pm is set to 'dynamic'&lt;br /&gt;pm.min_spare_servers = 5&lt;br /&gt;&lt;br /&gt;; The desired maximum number of idle server processes.&lt;br /&gt;; Note: Used only when pm is set to 'dynamic'&lt;br /&gt;; Note: Mandatory when pm is set to 'dynamic'&lt;br /&gt;pm.max_spare_servers = 10&lt;br /&gt; &lt;br /&gt;; The number of requests each child process should execute before respawning.&lt;br /&gt;; This can be useful to work around memory leaks in 3rd party libraries. For&lt;br /&gt;; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.&lt;br /&gt;; Default Value: 0&lt;br /&gt;;pm.max_requests = 500&lt;br /&gt;&lt;br /&gt;; The URI to view the FPM status page. If this value is not set, no URI will be&lt;br /&gt;; recognized as a status page. By default, the status page shows the following&lt;br /&gt;; information:&lt;br /&gt;;   accepted conn    - the number of request accepted by the pool;&lt;br /&gt;;   pool             - the name of the pool;&lt;br /&gt;;   process manager  - static or dynamic;&lt;br /&gt;;   idle processes   - the number of idle processes;&lt;br /&gt;;   active processes - the number of active processes;&lt;br /&gt;;   total processes  - the number of idle + active processes.&lt;br /&gt;; The values of 'idle processes', 'active processes' and 'total processes' are&lt;br /&gt;; updated each second. The value of 'accepted conn' is updated in real time.&lt;br /&gt;; Example output:&lt;br /&gt;;   accepted conn:   12073&lt;br /&gt;;   pool:             www&lt;br /&gt;;   process manager:  static&lt;br /&gt;;   idle processes:   35&lt;br /&gt;;   active processes: 65&lt;br /&gt;;   total processes:  100&lt;br /&gt;; By default the status page output is formatted as text/plain. Passing either&lt;br /&gt;; 'html' or 'json' as a query string will return the corresponding output&lt;br /&gt;; syntax. Example:&lt;br /&gt;;   http://www.foo.bar/status&lt;br /&gt;;   http://www.foo.bar/status?json&lt;br /&gt;;   http://www.foo.bar/status?html&lt;br /&gt;; Note: The value must start with a leading slash (/). The value can be&lt;br /&gt;;       anything, but it may not be a good idea to use the .php extension or it&lt;br /&gt;;       may conflict with a real PHP file.&lt;br /&gt;; Default Value: not set &lt;br /&gt;;pm.status_path = /status&lt;br /&gt; &lt;br /&gt;; The ping URI to call the monitoring page of FPM. If this value is not set, no&lt;br /&gt;; URI will be recognized as a ping page. This could be used to test from outside&lt;br /&gt;; that FPM is alive and responding, or to&lt;br /&gt;; - create a graph of FPM availability (rrd or such);&lt;br /&gt;; - remove a server from a group if it is not responding (load balancing);&lt;br /&gt;; - trigger alerts for the operating team (24/7).&lt;br /&gt;; Note: The value must start with a leading slash (/). The value can be&lt;br /&gt;;       anything, but it may not be a good idea to use the .php extension or it&lt;br /&gt;;       may conflict with a real PHP file.&lt;br /&gt;; Default Value: not set&lt;br /&gt;;ping.path = /ping&lt;br /&gt;&lt;br /&gt;; This directive may be used to customize the response of a ping request. The&lt;br /&gt;; response is formatted as text/plain with a 200 response code.&lt;br /&gt;; Default Value: pong&lt;br /&gt;;ping.response = pong&lt;br /&gt; &lt;br /&gt;; The timeout for serving a single request after which the worker process will&lt;br /&gt;; be killed. This option should be used when the 'max_execution_time' ini option&lt;br /&gt;; does not stop script execution for some reason. A value of '0' means 'off'.&lt;br /&gt;; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)&lt;br /&gt;; Default Value: 0&lt;br /&gt;;request_terminate_timeout = 0&lt;br /&gt; &lt;br /&gt;; The timeout for serving a single request after which a PHP backtrace will be&lt;br /&gt;; dumped to the 'slowlog' file. A value of '0s' means 'off'.&lt;br /&gt;; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)&lt;br /&gt;; Default Value: 0&lt;br /&gt;;request_slowlog_timeout = 0&lt;br /&gt; &lt;br /&gt;; The log file for slow requests&lt;br /&gt;; Default Value: not set&lt;br /&gt;; Note: slowlog is mandatory if request_slowlog_timeout is set&lt;br /&gt;slowlog = /var/log/php-fpm/www-slow.log&lt;br /&gt; &lt;br /&gt;; Set open file descriptor rlimit.&lt;br /&gt;; Default Value: system defined value&lt;br /&gt;;rlimit_files = 1024&lt;br /&gt; &lt;br /&gt;; Set max core size rlimit.&lt;br /&gt;; Possible Values: 'unlimited' or an integer greater or equal to 0&lt;br /&gt;; Default Value: system defined value&lt;br /&gt;;rlimit_core = 0&lt;br /&gt; &lt;br /&gt;; Chroot to this directory at the start. This value must be defined as an&lt;br /&gt;; absolute path. When this value is not set, chroot is not used.&lt;br /&gt;; Note: chrooting is a great security feature and should be used whenever &lt;br /&gt;;       possible. However, all PHP paths will be relative to the chroot&lt;br /&gt;;       (error_log, sessions.save_path, ...).&lt;br /&gt;; Default Value: not set&lt;br /&gt;;chroot = &lt;br /&gt; &lt;br /&gt;; Chdir to this directory at the start. This value must be an absolute path.&lt;br /&gt;; Default Value: current directory or / when chroot&lt;br /&gt;;chdir = /var/www&lt;br /&gt; &lt;br /&gt;; Redirect worker stdout and stderr into main error log. If not set, stdout and&lt;br /&gt;; stderr will be redirected to /dev/null according to FastCGI specs.&lt;br /&gt;; Default Value: no&lt;br /&gt;;catch_workers_output = yes&lt;br /&gt; &lt;br /&gt;; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from&lt;br /&gt;; the current environment.&lt;br /&gt;; Default Value: clean env&lt;br /&gt;;env[HOSTNAME] = $HOSTNAME&lt;br /&gt;;env[PATH] = /usr/local/bin:/usr/bin:/bin&lt;br /&gt;;env[TMP] = /tmp&lt;br /&gt;;env[TMPDIR] = /tmp&lt;br /&gt;;env[TEMP] = /tmp&lt;br /&gt;&lt;br /&gt;; Additional php.ini defines, specific to this pool of workers. These settings&lt;br /&gt;; overwrite the values previously defined in the php.ini. The directives are the&lt;br /&gt;; same as the PHP SAPI:&lt;br /&gt;;   php_value/php_flag             - you can set classic ini defines which can&lt;br /&gt;;                                    be overwritten from PHP call 'ini_set'. &lt;br /&gt;;   php_admin_value/php_admin_flag - these directives won't be overwritten by&lt;br /&gt;;                                     PHP call 'ini_set'&lt;br /&gt;; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no.&lt;br /&gt;&lt;br /&gt;; Defining 'extension' will load the corresponding shared extension from&lt;br /&gt;; extension_dir. Defining 'disable_functions' or 'disable_classes' will not&lt;br /&gt;; overwrite previously defined php.ini values, but will append the new value&lt;br /&gt;; instead.&lt;br /&gt;&lt;br /&gt;; Default Value: nothing is defined by default except the values in php.ini and&lt;br /&gt;;                specified at startup with the -d argument&lt;br /&gt;;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com&lt;br /&gt;;php_flag[display_errors] = off&lt;br /&gt;php_admin_value[error_log] = /var/log/php-fpm/www-error.log&lt;br /&gt;php_admin_flag[log_errors] = on&lt;br /&gt;;php_admin_value[memory_limit] = 32M&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-4375804633432270356?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=4375804633432270356' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4375804633432270356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4375804633432270356'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/01/livecommercenginx.html' title='Live Commerceをnginxで動かす'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-500245592514031128</id><published>2011-01-24T17:19:00.000+09:00</published><updated>2011-01-24T17:19:06.943+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lisp'/><title type='text'>consとappendの違い</title><content type='html'>&lt;blockquote&gt;CL-USER&gt; (let ((unko '(1 2 3)))&lt;br /&gt;  (cons unko '(4 5)))&lt;br /&gt;((1 2 3) 4 5)&lt;br /&gt;&lt;br /&gt;CL-USER&gt; (let ((unko '(1 2 3)))&lt;br /&gt;  (append unko '(4 5)))&lt;br /&gt;(1 2 3 4 5)&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-500245592514031128?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=500245592514031128' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/500245592514031128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/500245592514031128'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/01/consappend.html' title='consとappendの違い'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-2321271444823915672</id><published>2011-01-17T19:18:00.000+09:00</published><updated>2011-01-17T19:18:22.133+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lisp'/><title type='text'>slimeのキーバインド</title><content type='html'>&lt;blockquote&gt;TAB        slime-indent-and-complete-symbol&lt;br /&gt;C-j        slime-repl-newline-and-indent&lt;br /&gt;RET        slime-repl-return&lt;br /&gt;SPC        slime-space&lt;br /&gt;,          slime-handle-repl-shortcut&lt;br /&gt;&lt;C-down&gt;   slime-repl-forward-input&lt;br /&gt;&lt;C-return&gt; slime-repl-closing-return&lt;br /&gt;&lt;C-up&gt;     slime-repl-backward-input&lt;br /&gt;&lt;home&gt;     slime-repl-bol&lt;br /&gt;&lt;return&gt;   slime-repl-return&lt;br /&gt;C-c C-b .. C-c C-c slime-interrupt&lt;br /&gt;C-c C-d    slime-doc-map&lt;br /&gt;C-c C-e    slime-interactive-eval&lt;br /&gt;C-c TAB    slime-complete-symbol&lt;br /&gt;C-c C-l    slime-load-file&lt;br /&gt;C-c RET    slime-macroexpand-1&lt;br /&gt;C-c C-n    slime-repl-next-prompt&lt;br /&gt;C-c C-o    slime-repl-clear-output&lt;br /&gt;C-c C-p    slime-repl-previous-prompt&lt;br /&gt;C-c C-r    slime-eval-region&lt;br /&gt;C-c C-s    slime-complete-form&lt;br /&gt;C-c C-t    slime-toggle-trace-fdefinition&lt;br /&gt;C-c C-u    slime-repl-kill-input&lt;br /&gt;C-c C-w    slime-who-map&lt;br /&gt;C-c C-z    slime-nop&lt;br /&gt;C-c :      slime-interactive-eval&lt;br /&gt;C-c &lt;      slime-list-callersC-c &gt;      slime-list-callees&lt;br /&gt;C-c E      slime-edit-value&lt;br /&gt;C-c I      slime-inspect&lt;br /&gt;M-TAB      slime-complete-symbol&lt;br /&gt;M-RET      slime-repl-closing-return&lt;br /&gt;C-M-x      slime-eval-defun&lt;br /&gt;M-,        slime-pop-find-definition-stack&lt;br /&gt;M-.        slime-edit-definition&lt;br /&gt;M-n        slime-repl-next-input&lt;br /&gt;M-p        slime-repl-previous-input&lt;br /&gt;M-r        slime-repl-previous-matching-input&lt;br /&gt;M-s        slime-repl-next-matching-input&lt;br /&gt;C-M-.      slime-next-location&lt;br /&gt;C-x C-e    slime-eval-last-expression&lt;br /&gt;C-c M-d    slime-disassemble-symbol&lt;br /&gt;C-c M-i    slime-fuzzy-complete-symbol&lt;br /&gt;C-c M-m    slime-macroexpand-all&lt;br /&gt;C-c M-o    slime-repl-clear-buffer&lt;br /&gt;C-c M-p    slime-repl-set-package&lt;br /&gt;C-c C-v C-d slime-describe-presentation-at-point&lt;br /&gt;C-c C-v TAB slime-inspect-presentation-at-point&lt;br /&gt;C-c C-v C-n slime-next-presentation&lt;br /&gt;C-c C-v C-p slime-previous-presentation&lt;br /&gt;C-c C-v C-r slime-copy-presentation-at-point-to-repl&lt;br /&gt;C-c C-v C-w slime-copy-presentation-at-point-to-kill-ring&lt;br /&gt;C-c C-v SPC slime-mark-presentation&lt;br /&gt;C-c C-v d  slime-describe-presentation-at-point&lt;br /&gt;C-c C-v i  slime-inspect-presentation-at-point&lt;br /&gt;C-c C-v n  slime-next-presentation&lt;br /&gt;C-c C-v p  slime-previous-presentation&lt;br /&gt;C-c C-v r  slime-copy-presentation-at-point-to-repl&lt;br /&gt;C-c C-v w  slime-copy-presentation-at-point-to-kill-ring&lt;br /&gt;C-c C-v C-SPC slime-mark-presentation&lt;br /&gt;C-c C-w C-a slime-who-specializes&lt;br /&gt;C-c C-w C-b slime-who-binds&lt;br /&gt;C-c C-w C-c slime-who-calls&lt;br /&gt;C-c C-w RET slime-who-macroexpands&lt;br /&gt;C-c C-w C-r slime-who-references&lt;br /&gt;C-c C-w C-s slime-who-sets&lt;br /&gt;C-c C-w C-w slime-calls-who&lt;br /&gt;C-c C-w a  slime-who-specializes&lt;br /&gt;C-c C-w b  slime-who-binds&lt;br /&gt;C-c C-w c  slime-who-calls&lt;br /&gt;C-c C-w m  slime-who-macroexpands&lt;br /&gt;C-c C-w r  slime-who-references&lt;br /&gt;C-c C-w s  slime-who-sets&lt;br /&gt;C-c C-w w  slime-calls-who&lt;br /&gt;C-c C-d C-a slime-apropos&lt;br /&gt;C-c C-d C-d slime-describe-symbol&lt;br /&gt;C-c C-d C-f slime-describe-function&lt;br /&gt;C-c C-d C-p slime-apropos-package&lt;br /&gt;C-c C-d C-z slime-apropos-all&lt;br /&gt;C-c C-d a  slime-apropos&lt;br /&gt;C-c C-d d  slime-describe-symbol&lt;br /&gt;C-c C-d f  slime-describe-function&lt;br /&gt;C-c C-d h  slime-hyperspec-lookup&lt;br /&gt;C-c C-d p  slime-apropos-package&lt;br /&gt;C-c C-d z  slime-apropos-all&lt;br /&gt;C-c C-x c  slime-list-connections&lt;br /&gt;C-c C-x t  slime-list-threads&lt;br /&gt;C-x 5 .    slime-edit-definition-other-frame&lt;br /&gt;C-x 4 .    slime-edit-definition-other-window&lt;br /&gt;C-c C-v M-o slime-clear-presentations&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-2321271444823915672?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=2321271444823915672' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/2321271444823915672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/2321271444823915672'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/01/slime.html' title='slimeのキーバインド'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-4763707345271054193</id><published>2011-01-17T16:33:00.001+09:00</published><updated>2011-01-17T16:34:45.876+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>perl-IO-Compress のせいで yum update できない(rpmforge)時の対処法</title><content type='html'>&lt;blockquote&gt;perl-IO-Compress-2.024-1.el5.rf.noarch from installed has depsolving problems&lt;br /&gt;--&gt; Missing Dependency: perl(Compress::Raw::Zlib) = 2.024 is needed by package perl-IO-Compress-2.024-1.el5.rf.noarch (installed)&lt;/blockquote&gt;などといわれてyum updateできない時の対処法&lt;br /&gt;rpmforgeのリポジトリに変更があったようなので&lt;br /&gt;rpmforgeをアップデートしたのち、&lt;br /&gt;perl-IO-Compressをrpmforge-extrasリポジトリからとってきてアップデートすればOK&lt;br /&gt;perl-IO-Compressが標準rpmforgeリポジトリからrpmforge-extrasに引越したみたいですな。&lt;br /&gt;&lt;blockquote&gt;yum update rpmforge-release&lt;br /&gt;yum update --enablerepo=rpmforge-extras perl-IO-Compress&lt;br /&gt;&lt;/blockquote&gt;このあとに&lt;br /&gt;&lt;blockquote&gt;yum update&lt;/blockquote&gt;すれば問題ない。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-4763707345271054193?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=4763707345271054193' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4763707345271054193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4763707345271054193'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/01/perl-io-compress-yum-update-rpmforge.html' title='perl-IO-Compress のせいで yum update できない(rpmforge)時の対処法'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-3255292125895269350</id><published>2011-01-05T18:51:00.002+09:00</published><updated>2011-01-17T17:02:40.495+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>rpmforgeからrsync3がinstallできない件</title><content type='html'>rsyncのversion3以降は&lt;br /&gt;リポジトリが変わってrpmforge-extrasに移動したみたいですな。&lt;br /&gt;&lt;blockquote&gt;yum install --enablerepo=rpmforge-extras rsync&lt;/blockquote&gt;気づくのに時間がかかった。&lt;br /&gt;う〜む。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-3255292125895269350?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=3255292125895269350' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/3255292125895269350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/3255292125895269350'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/01/rpmforgersync3install.html' title='rpmforgeからrsync3がinstallできない件'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-1637744749024887286</id><published>2011-01-02T17:34:00.015+09:00</published><updated>2011-01-15T04:07:51.568+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>マイティサーバのkernelをupdateする</title><content type='html'>マイティサーバはカーネルアップデートできなくて&lt;br /&gt;微妙すぎるのでなんとかする。&lt;br /&gt;商用サービスでこれはあかんでぇ〜とGMOさんに一言言っておきたい。&lt;br /&gt;おそらくサポート対象外になるので自己責任でどうぞ。&lt;br /&gt;ちなみにCentOS5.5です。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;一回目のアップデート時&lt;/b&gt;&lt;br /&gt;vim /etc/yum.conf&lt;blockquote&gt;excludeの行をコメントアウトする&lt;/blockquote&gt;&lt;br /&gt;必要なものをインストールしてカーネルをアップデート&lt;br /&gt;&lt;blockquote&gt;yum -y install kernel-PAE-devel gcc-c++&lt;br /&gt;yum clean all&lt;br /&gt;yum update&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;/etc/modprobe.confにalias scsi_hostadapter megasrがあるか確認する&lt;/blockquote&gt;&lt;br /&gt;raidドライバが古くて新カーネルでうまく動かないので対応するドライバを探す&lt;br /&gt;&lt;a href="http://www.lsi.com/cm/License.do?url=http://www.lsi.com/DistributionSystem/AssetDocument/support/downloads/megaraid/sas/software_drivers/linux/10.19_RH50.zip&amp;prodName=MegaRAID%20SAS%208208ELP&amp;subType=Driver&amp;locale=EN"&gt;このへん&lt;/a&gt; or &lt;a href="http://say.id.or.id/download/10.19_RH50.zip"&gt;このへん&lt;/a&gt;&lt;br /&gt;解凍してできた10.19_RH50をサーバに転送して/root直下に配置する&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="cpp"&gt;cd /root/10.19_RH50/shim/library/rhel5-32/&lt;br /&gt;make -C /usr/src/kernels/`rpm -q kernel-PAE|tail -n 1|sed 's/kernel-PAE-//g'|sed 's/.el5$//g'`.el5-PAE-i686 M=$PWD&lt;br /&gt;cp megasr.ko /lib/modules/`rpm -q kernel-PAE|tail -n 1|sed 's/kernel-PAE-//g'|sed 's/.el5$//g'`.el5PAE/updates/&lt;br /&gt;/sbin/depmod -a `rpm -q kernel-PAE|tail -n 1|sed 's/kernel-PAE-//g'|sed 's/.el5$//g'`.el5PAE&lt;br /&gt;/sbin/mkinitrd -f /boot/initrd-`rpm -q kernel-PAE|tail -n 1|sed 's/kernel-PAE-//g'|sed 's/.el5$//g'`.el5PAE.img `rpm -q kernel-PAE|tail -n 1|sed 's/kernel-PAE-//g'|sed 's/.el5$//g'`.el5PAE&lt;/pre&gt;&lt;br /&gt;rebootする&lt;br /&gt;最悪起動しなくてもシリアルコンソールから起動する以前のカーネルを選べば起動する&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;二回目以降のカーネルアップデート時(手動でやる場合)&lt;/b&gt;&lt;br /&gt;カーネルアップデートのたびにmegasr.koを組み込まないと起動しない&lt;br /&gt;yum updateでカーネルをアップデートしたあと&lt;br /&gt;&lt;pre name="code" class="cpp"&gt;cp /root/10.19_RH50/shim/library/rhel5-32/megasr.ko /lib/modules/`rpm -q kernel-PAE|tail -n 1|sed 's/kernel-PAE-//g'|sed 's/.el5$//g'`.el5PAE/updates/megasr.ko&lt;br /&gt;echo alias scsi_hostadapter megasr &gt;&gt; /etc/modprobe.conf&lt;br /&gt;/sbin/depmod -a `rpm -q kernel-PAE|tail -n 1|sed 's/kernel-PAE-//g'|sed 's/.el5$//g'`.el5PAE&lt;br /&gt;/sbin/mkinitrd -f /boot/initrd-`rpm -q kernel-PAE|tail -n 1|sed 's/kernel-PAE-//g'|sed 's/.el5$//g'`.el5PAE.img `rpm -q kernel-PAE|tail -n 1|sed 's/kernel-PAE-//g'|sed 's/.el5$//g'`.el5PAE&lt;/pre&gt;&lt;br /&gt;rebootする&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;二回目以降のカーネルアップデート時の処理を自動化する&lt;/b&gt;&lt;br /&gt;/etc/init.d/kernelupdateに実行権限をつけて以下を置く&lt;br /&gt;&lt;pre name="code" class="cpp"&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;# kernelupdate - this script starts and stops the mighty-kernel update&lt;br /&gt;#&lt;br /&gt;# chkconfig: 2345 99 01&lt;br /&gt;# description:  kernelupdate&lt;br /&gt;# processname: kernelupdate&lt;br /&gt;&lt;br /&gt;# Source function library.&lt;br /&gt;. /etc/rc.d/init.d/functions&lt;br /&gt;&lt;br /&gt;kernelupdate="/root/kernelupdate.sh"&lt;br /&gt;prog=$(basename $kernelupdate)&lt;br /&gt;lockfile=/var/lock/subsys/kernelupdate&lt;br /&gt;&lt;br /&gt;start() {&lt;br /&gt;    echo -n $"Starting $prog: "&lt;br /&gt;    touch $lockfile&lt;br /&gt;    return 0&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;stop() {&lt;br /&gt;    echo -n $"Stopping $prog: "&lt;br /&gt;    rm -f $lockfile&lt;br /&gt;    /root/kernelupdate.sh&lt;br /&gt;    return 0&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;case "$1" in&lt;br /&gt;  start)&lt;br /&gt;        start&lt;br /&gt;        ;;&lt;br /&gt;  stop)&lt;br /&gt;        stop&lt;br /&gt;        ;;&lt;br /&gt;    *)&lt;br /&gt;        echo $"Usage: $0 {start|stop}"&lt;br /&gt;        exit 2&lt;br /&gt;esac&lt;/pre&gt;&lt;br /&gt;&lt;blockquote&gt;chkconfig --add kernelupdate&lt;br /&gt;chkconfig kernelupdate on&lt;/blockquote&gt;&lt;br /&gt;以下を/root/kernelupdate.shに実行権限をつけて置く&lt;br /&gt;&lt;pre name="code" class="cpp"&gt;#!/bin/sh&lt;br /&gt;# /root/kernelupdate.shに置く&lt;br /&gt;# 二回目以降のマィティサーバのカーネルアップデート用&lt;br /&gt;mynewkernel=`rpm -q kernel-PAE|tail -n 1|sed 's/kernel-PAE-//g'|sed 's/.el5$//g'`&lt;br /&gt;&lt;br /&gt;cat /etc/modprobe.conf|grep 'alias scsi_hostadapter megasr' &gt; /dev/null&lt;br /&gt;if [ $? = 1 ]; then&lt;br /&gt;  echo alias scsi_hostadapter megasr &gt;&gt; /etc/modprobe.conf&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ ! -f /lib/modules/${mynewkernel}.el5PAE/updates/megasr.ko ]; then&lt;br /&gt;  cp /root/10.19_RH50/shim/library/rhel5-32/megasr.ko /lib/modules/${mynewkernel}.el5PAE/updates/megasr.ko&lt;br /&gt;  /sbin/depmod -a ${mynewkernel}.el5PAE&lt;br /&gt;  /sbin/mkinitrd -f /boot/initrd-${mynewkernel}.el5PAE.img ${mynewkernel}.el5PAE&lt;br /&gt;fi&lt;/pre&gt;rebootしておく&lt;br /&gt;これでyum updateするだけでカーネルアップデートできるようになる&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-1637744749024887286?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=1637744749024887286' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/1637744749024887286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/1637744749024887286'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2011/01/kernelupdate.html' title='マイティサーバのkernelをupdateする'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-6000029009440313918</id><published>2010-10-10T22:51:00.000+09:00</published><updated>2010-10-10T22:51:35.196+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='thinkpad'/><title type='text'>thinkpadのファンをlinuxからコントロールする</title><content type='html'>ubuntuフォーラムにも書いたけどよく忘れるのでここにメモ。&lt;br /&gt;thinkpadを酷使して熱くなったときや暑い日などに使う。&lt;br /&gt;&lt;br /&gt;vim /etc/modprobe.d/optionsに&lt;br /&gt;&lt;blockquote&gt;options thinkpad_acpi fan_control=1&lt;/blockquote&gt;を追記、&lt;br /&gt;再起動したのち&lt;br /&gt;ターミナルを開いて&lt;br /&gt;&lt;blockquote&gt;echo level 0 &gt; /proc/acpi/ibm/fan (fan offの場合)&lt;br /&gt;&lt;br /&gt;echo level 2 &gt; /proc/acpi/ibm/fan (low speedの場合)&lt;br /&gt;&lt;br /&gt;echo level 4 &gt; /proc/acpi/ibm/fan (medium speedの場合)&lt;br /&gt;&lt;br /&gt;echo level 7 &gt; /proc/acpi/ibm/fan (maximum speedの場合)&lt;br /&gt;&lt;br /&gt;echo level auto &gt; /proc/acpi/ibm/fan (automatic - defaultの場合)&lt;br /&gt;&lt;br /&gt;echo level disengaged &gt; /proc/acpi/ibm/fan (disengagedの場合)&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-6000029009440313918?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=6000029009440313918' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/6000029009440313918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/6000029009440313918'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2010/10/thinkpadlinux.html' title='thinkpadのファンをlinuxからコントロールする'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-8961201656906370557</id><published>2010-10-10T05:29:00.007+09:00</published><updated>2011-02-15T15:23:37.344+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>mysqlの参照系スロークエリ２０秒以上のものだけkillしてしのぐ</title><content type='html'>mysql のスレッドが 500 くらいになって&lt;br /&gt;サーバごとおちるような案件があったので&lt;br /&gt;参照系クエリでスロークエリ 20秒 以上のものを&lt;br /&gt;SQL が改善されるまでの間 kill することにした。&lt;br /&gt;すぐに SQL を直せよという話だが、&lt;br /&gt;あまりにもひどい SQL だったので修正までに時間がかかり&lt;br /&gt;kill しないとサーバごと落ちる。&lt;br /&gt;たぶん、mysql を再起動するよりはまし&lt;br /&gt;あまりこういったものは使いたくないがいたしかたない。&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="c"&gt;#!/bin/sh&lt;br /&gt;PASSWORD=password//mysqlのrootパスワード&lt;br /&gt;DBNAME=hogedb//該当DB名&lt;br /&gt;&lt;br /&gt;while true;&lt;br /&gt;do&lt;br /&gt;SEARCH_MYSQL_THREAD=`/usr/bin/mysqladmin processlist -u root -p$PASSWORD | awk 'BEGIN { FS="|"; } /$DBNAME/ &amp;&amp; /Query/ &amp;&amp; /Sending data/' | sort -nrk 12 | head -n 1 | awk '{print $2 ,$12}'`&lt;br /&gt;&lt;br /&gt;MYSQL_THREAD_ID=`echo $SEARCH_MYSQL_THREAD | cut -d\  -f1`&lt;br /&gt;MYSQL_SLOW_QUERY_TIME=`echo $SEARCH_MYSQL_THREAD | cut -d\  -f2`&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if echo $MYSQL_SLOW_QUERY_TIME | grep -E '^[0-9]+$' &gt;/dev/null 2&gt;&amp;1; then&lt;br /&gt;if [ $MYSQL_SLOW_QUERY_TIME -gt 20 ]; then&lt;br /&gt;/usr/bin/mysqladmin kill $MYSQL_THREAD_ID -u root -p$PASSWORD&lt;br /&gt;echo "mysql thread $MYSQL_THREAD_ID killed!!" | mail -s $0 root&lt;br /&gt;fi&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# デバッグ用&lt;br /&gt;# echo $MYSQL_THREAD_ID&lt;br /&gt;# echo $MYSQL_SLOW_QUERY_TIME&lt;br /&gt;# echo "-------------"&lt;br /&gt;&lt;br /&gt;unset SEARCH_MYSQL_THREAD&lt;br /&gt;unset MYSQL_THREAD_ID&lt;br /&gt;unset MYSQL_SLOW_QUERY_TIME&lt;br /&gt;&lt;br /&gt;sleep 2&lt;br /&gt;done&lt;/pre&gt;&lt;br /&gt;起動方法&lt;br /&gt;&lt;blockquote&gt;nohup /root/mysqlkillprocesslist.sh &gt; out.log 2&gt; err.log &lt; /dev/null &amp;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;SQLが改善するまでの間デーモンのように動かしておく。&lt;br /&gt;nohup してるのでログアウトしても OK&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ps aux|grep mysqlkillprocesslist.sh&lt;br /&gt;root     25369  0.0  0.0  63860  1096 pts/0    SN   22:45   0:00 /bin/sh /root/mysqlkillprocesslist.sh&lt;br /&gt;root     26547  0.0  0.0  65404   824 pts/0    S+   22:46   0:00 grep mysqlkillprocesslist.sh&lt;/blockquote&gt;&lt;br /&gt;必要なくなったら&lt;br /&gt;kill -9 プロセスIDで終了させる。&lt;br /&gt;&lt;br /&gt;つまらないものを作ってしまった。&lt;br /&gt;もうこの案件のSQLはみたくない。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-8961201656906370557?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=8961201656906370557' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8961201656906370557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8961201656906370557'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2010/10/mysqlkill.html' title='mysqlの参照系スロークエリ２０秒以上のものだけkillしてしのぐ'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-1228128031505546643</id><published>2010-09-26T23:14:00.035+09:00</published><updated>2010-09-27T14:16:25.803+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>lsyncdの複数サーバへのミラーと監視ファイル増加による負荷状況</title><content type='html'>lsyncdで複数サーバへミラーリングする&lt;br /&gt;&lt;blockquote&gt;hoge-web1サーバ(ミラー元サーバ)&lt;br /&gt;↓&lt;br /&gt;hoge-web2 hoge-web3 hoge-web4 hoge-web5(ミラー先サーバ群)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;大体以下のような設定です。&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ミラー先のサーバの設定&lt;/span&gt;&lt;br /&gt;vim /etc/xinetd.d/rsync&lt;br /&gt;&lt;blockquote&gt;service rsync&lt;br /&gt;{&lt;br /&gt;disable = no ←noにする&lt;br /&gt;socket_type     = stream&lt;br /&gt;wait            = no&lt;br /&gt;user            = root&lt;br /&gt;server          = /usr/bin/rsync&lt;br /&gt;server_args     = --daemon&lt;br /&gt;log_on_failure  += USERID&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;vim /etc/rsyncd.conf&lt;br /&gt;&lt;blockquote&gt;uid = hogeadmin　←ファイルの所有者&lt;br /&gt;gid = hogeadmin　←ファイルのグループを設定&lt;br /&gt;log file = /var/log/rsyncd.log&lt;br /&gt;pid file = /var/run/rsyncd.pid&lt;br /&gt;[sync1]&lt;br /&gt;path = /home/htdocs/hogehoge.com/master/&lt;br /&gt;hosts allow = 172.20.3.128/26　←許可するIPを設定&lt;br /&gt;read only = false&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ミラー元サーバの設定&lt;/span&gt;&lt;br /&gt;vim /etc/lsyncd.conf.xml&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&amp;lt;directory&amp;gt;&lt;br /&gt;&amp;lt;source path="/home/htdocs/hogehoge.com/master/"/&amp;gt;&lt;br /&gt;&amp;lt;target path="hoge-web2::sync1/"/&amp;gt;&lt;br /&gt;&amp;lt;target path="hoge-web3::sync1/"/&amp;gt;&lt;br /&gt;&amp;lt;target path="hoge-web4::sync1/"/&amp;gt;&lt;br /&gt;&amp;lt;target path="hoge-web5::sync1/"/&amp;gt;&lt;br /&gt;&amp;lt;/directory&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/etc/init.d/lsyncd&lt;br /&gt;&lt;pre name="code" class="c"&gt;#!/bin/bash&lt;br /&gt;#&lt;br /&gt;# lsyncd: Starts the lsync Daemon&lt;br /&gt;#&lt;br /&gt;# chkconfig: 345 99 90&lt;br /&gt;# description: lsyncd auto start script&lt;br /&gt;# processname: lsyncd&lt;br /&gt;&lt;br /&gt;. /etc/rc.d/init.d/functions&lt;br /&gt;&lt;br /&gt;config="/etc/lsyncd.conf.xml"&lt;br /&gt;lsyncd="/usr/sbin/lsyncd"&lt;br /&gt;lockfile="/var/lock/subsys/lsyncd"&lt;br /&gt;prog="lsyncd"&lt;br /&gt;RETVAL=0&lt;br /&gt;&lt;br /&gt;start() { &lt;br /&gt;if [ -f $lockfile ]; then&lt;br /&gt;echo -n $"$prog is already running: "&lt;br /&gt;echo&lt;br /&gt;else&lt;br /&gt;echo -n $"Starting $prog: "&lt;br /&gt;daemon $lsyncd --conf=$config&lt;br /&gt;RETVAL=$?&lt;br /&gt;echo&lt;br /&gt;[ $RETVAL = 0 ] &amp;&amp; touch $lockfile&lt;br /&gt;return $RETVAL&lt;br /&gt;fi&lt;br /&gt;}&lt;br /&gt;stop() {&lt;br /&gt;echo -n $"Stopping $prog: "&lt;br /&gt;killproc $lsyncd &lt;br /&gt;RETVAL=$?&lt;br /&gt;echo&lt;br /&gt;[ $RETVAL = 0 ] &amp;&amp; rm -f $lockfile&lt;br /&gt;return $RETVAL&lt;br /&gt;}&lt;br /&gt;case "$1" in&lt;br /&gt;start)&lt;br /&gt;start&lt;br /&gt;;;&lt;br /&gt;stop)&lt;br /&gt;stop&lt;br /&gt;;;&lt;br /&gt;restart)&lt;br /&gt;stop&lt;br /&gt;start&lt;br /&gt;;;&lt;br /&gt;status)&lt;br /&gt;status $lsyncd&lt;br /&gt;;;&lt;br /&gt;*)&lt;br /&gt;echo "Usage: lsyncd {start|stop|restart|status}"&lt;br /&gt;exit 1&lt;br /&gt;&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;exit $?&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;監視可能ファイル数を設定する&lt;/span&gt;&lt;br /&gt;inotifyのmax_user_watchesのデフォルト値は 8192 なので 増やしたい時は&lt;br /&gt;vim /etc/sysctl.conf&lt;br /&gt;&lt;blockquote&gt;fs.inotify.max_user_watches = 786432 # 追加&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;/sbin/sysctl -p&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;監視ファイルを増やした時の負荷状況&lt;/span&gt;&lt;br /&gt;web1サーバのスペック&lt;br /&gt;&lt;blockquote&gt;Intel(R) Xeon(R) CPU X3330 @ 2.66GHz&lt;br /&gt;memory 4G&lt;br /&gt;centos 5.5 @ x86_64&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;web1サーバの平均負荷は&lt;br /&gt;load average0.5 くらいです。&lt;br /&gt;&lt;br /&gt;この環境で&lt;br /&gt;fs.inotify.max_user_watches = 786432&lt;br /&gt;というバカみたいに多いファイル数を監視しても今のところ問題ないようです。&lt;br /&gt;&lt;br /&gt;ファイルをミラーリングするときにはその処理にざっくり言うと、4コアのうちの1コアをCPU10% くらい使う感じです。ざっくりですが…&lt;br /&gt;&lt;br /&gt;cpu負荷がもっとあがったら問題がでるのかもしれませんが、&lt;br /&gt;このサイトは画像データだけでも大量に存在するサイトであり、&lt;br /&gt;かつ、日付のフォルダなんかが沢山おいてある腐ったサイトであるので、&lt;br /&gt;協力会社にバージョン管理してファイル数を削減しましょうと言っても、「そんなもの覚えられん」と拒否されてしまったようなサイトです。&lt;br /&gt;したがって、ファイル数は減らせません。&lt;br /&gt;&lt;br /&gt;というわけで、&lt;br /&gt;fs.inotify.max_user_watchesはまだまだ増えそうなので&lt;br /&gt;cpu負荷がもっとあがったら問題がでるかどうか人柱します。&lt;br /&gt;本番サイトで人柱するはめになるとは…。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-1228128031505546643?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=1228128031505546643' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/1228128031505546643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/1228128031505546643'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2010/09/lsyncd.html' title='lsyncdの複数サーバへのミラーと監視ファイル増加による負荷状況'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-76235413781987360</id><published>2010-08-17T19:40:00.042+09:00</published><updated>2011-02-18T19:51:07.319+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>再インストールメモ Lucid Lynx</title><content type='html'>&lt;blockquote&gt;echo "alias screen='screen -D -RR'" &gt;&gt; ~/.bashrc&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;$HOME配下を英語名に変更する。&lt;br /&gt;&lt;blockquote&gt;LANG=C xdg-user-dirs-gtk-update&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;キーボードのレイアウトのオプション&lt;br /&gt;&lt;blockquote&gt;Ctrl キーの位置&lt;br /&gt;Make CapsLock an addtional Ctrl&lt;br /&gt;&lt;br /&gt;Key sewuence to kill the X server&lt;br /&gt;Control + Alt + Backspace&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;キーボードショートカット&lt;br /&gt;&lt;blockquote&gt;ウインドウの管理の&lt;br /&gt;ウインドウメニューをアクティブにするを無効にする&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;GnomeをEmacsキーバインドにする&lt;br /&gt;&lt;blockquote&gt;gconf-editor&lt;br /&gt;desktop → gnome → interface を開いてgtk_key_theme の値を Emacs にする。&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;USBメモリから以前のマシンの.sshフォルダをコピーする&lt;br /&gt;&lt;br /&gt;GITをインストールする&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install build-essential&lt;br /&gt;sudo apt-get install zlib1g-dev&lt;br /&gt;cd /tmp&lt;br /&gt;wget http://www.kernel.org/pub/software/scm/git/git-1.7.2.tar.gz&lt;br /&gt;tar zxvf git-1.7.2.tar.gz&lt;br /&gt;cd git-1.7.2&lt;br /&gt;./configure&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fontを追加&lt;br /&gt;&lt;blockquote&gt;mkdir .fonts&lt;br /&gt;cp -r git/mixfont-mplus-ipa-TrueType-20060520p1 .fonts&lt;/blockquote&gt;&lt;br /&gt;gnome-terminalのフォントをM+2VM+IPAG circleにする&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;開発環境など&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install tig&lt;br /&gt;sudo apt-get install diffuse&lt;br /&gt;sudo apt-get install rcconf&lt;br /&gt;sudo apt-get install nmap&lt;br /&gt;sudo apt-get install vim&lt;br /&gt;sudo apt-get install nkf&lt;br /&gt;sudo apt-get install xsel&lt;br /&gt;sudo apt-get install atool&lt;br /&gt;sudo apt-get install ttyrec&lt;br /&gt;sudo apt-get install keychain&lt;br /&gt;sudo apt-get install libnotify-bin&lt;br /&gt;sudo apt-get install zsh&lt;br /&gt;sudo apt-get install rlwrap&lt;br /&gt;sudo apt-get install gpointing-device-settings&lt;br /&gt;sudo apt-get install emacs23 emacs-goodies-el&lt;br /&gt;sudo apt-get install w3m-el-snapshot&lt;br /&gt;sudo apt-get install apache2-utils&lt;br /&gt;sudo apt-get install sylpheed-doc&lt;br /&gt;sudo apt-get install colordiff&lt;br /&gt;sudo apt-get install sshfs&lt;br /&gt;sudo apt-get install global&lt;br /&gt;sudo apt-get install smbfs&lt;br /&gt;sudo apt-get install php5-cli&lt;br /&gt;sudo apt-get install screen&lt;br /&gt;sudo apt-get install xclip&lt;br /&gt;sudo apt-get install iotop&lt;br /&gt;sudo apt-get install migemo&lt;br /&gt;sudo apt-get install parcellite&lt;br /&gt;sudo apt-get install vlc&lt;br /&gt;sudo apt-get install winff&lt;br /&gt;sudo apt-get install gtk-recordmydesktop&lt;br /&gt;sudo apt-get install liferea&lt;br /&gt;sudo apt-get install meld&lt;br /&gt;sudo apt-get install clisp&lt;br /&gt;sudo apt-get install sbcl&lt;br /&gt;sudo apt-get install sbcl-doc&lt;br /&gt;sudo apt-get install slime&lt;br /&gt;sudo apt-get install hyperspec&lt;br /&gt;sudo apt-get install hardinfo&lt;br /&gt;sudo apt-get install wireshark&lt;br /&gt;sudo apt-get install doxygen doxygen-gui graphviz&lt;br /&gt;sudo apt-get install xmanpages-ja&lt;br /&gt;sudo apt-get install manpages-ja&lt;br /&gt;sudo apt-get install manpages-ja-dev&lt;br /&gt;sudo apt-get install compizconfig-settings-manager&lt;br /&gt;sudo apt-get install inkscape&lt;br /&gt;sudo apt-get install p7zip-full&lt;br /&gt;sudo apt-get install rar&lt;br /&gt;sudo apt-get install shutter&lt;br /&gt;sudo apt-get install exaile&lt;br /&gt;sudo apt-get install ubuntu-restricted-extras&lt;br /&gt;sudo apt-get install preload&lt;br /&gt;sudo apt-get install cups-pdf&lt;br /&gt;sudo apt-get install ntfs-config&lt;br /&gt;sudo apt-get install gparted&lt;br /&gt;sudo apt-get install d4x&lt;br /&gt;sudo apt-get install sdic&lt;br /&gt;sudo apt-get install quicksynergy&lt;br /&gt;sudo apt-get install trash-cli&lt;br /&gt;sudo apt-get install dstat&lt;br /&gt;sudo apt-get install gftp&lt;br /&gt;sudo apt-get install testdisk&lt;br /&gt;sudo apt-get install gnome-do&lt;br /&gt;sudo apt-get install mplayer&lt;br /&gt;sudo apt-get install asunder&lt;/blockquote&gt;&lt;br /&gt;mecab&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install mecab libmecab-dev mecab-ipadic&lt;br /&gt;sudo /usr/lib/mecab/mecab-dict-index -d /usr/share/mecab/dic/ipadic -o /var/lib/mecab/dic/ipadic -f euc-jp -t utf-8 -p&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Mozc&lt;br /&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:japanese-testers/ppa&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install ibus-mozc&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Emacs&lt;br /&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:ubuntu-elisp/ppa&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install emacs23&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IBusの設定&lt;br /&gt;&lt;blockquote&gt;切り替え Ctrl+Spaceを削除して、Shift+Spaceを追加&lt;br /&gt;言語バーにインプットメソッド名を表示するにチェック&lt;br /&gt;mozcのキー設定をことえりにして&lt;br /&gt;代替空白文字を適当Ctrl shift spaceにする&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Wine&lt;br /&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:ubuntu-wine&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install wine1.2&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;gm-notify&lt;br /&gt;&lt;blockquote&gt;sudo apt-add-repository ppa:gm-notify-maintainers/ppa&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install gm-notify&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Firefoxアドオン&lt;br /&gt;&lt;blockquote&gt;Easy DragToGo&lt;br /&gt;KeySnail&lt;br /&gt;Tab Mix Plus&lt;br /&gt;FireGestures&lt;br /&gt;Default FullZoom Level&lt;br /&gt;AutoPager&lt;br /&gt;SQlite Optimizer&lt;br /&gt;HatenaBookmark&lt;br /&gt;XUL/Migemo&lt;br /&gt;Download Statusbar&lt;br /&gt;LoL&lt;br /&gt;Adblock Plus&lt;br /&gt;text link&lt;br /&gt;scrap book&lt;br /&gt;firebug&lt;br /&gt;FireMobileSimulator&lt;br /&gt;webdeveloper&lt;br /&gt;ViewSourceWith&lt;br /&gt;Live HTTP Headers&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;conpiz configマネージャーのウインドウのルールの最大化に追加&lt;br /&gt;&lt;blockquote&gt;(class=terminal) | class=Terminal | (class=emacs) | class=Emacs&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;terminalでgnome-terminal起動&lt;br /&gt;&lt;blockquote&gt;sudo ln -s /usr/bin/gnome-terminal /usr/bin/terminal&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;gitリポジトリにシンボリックリンク&lt;br /&gt;&lt;pre name="code" class="c"&gt;sudo ln -s ~/git/masa/.emacs ~/.emacs&lt;br /&gt;sudo ln -s ~/git/masa/.emacs.d ~/.emacs.d&lt;br /&gt;sudo ln -s ~/git/masa/ChangeLog ~/ChangeLog&lt;br /&gt;sudo ln -s ~/git/masa/.zshrc ~/.zshrc&lt;br /&gt;sudo ln -s ~/git/masa/.screenrc ~/.screenrc&lt;br /&gt;sudo ln -s ~/git/masa/.vimrc ~/.vimrc&lt;br /&gt;sudo ln -s ~/git/masa/.gitconfig ~/.gitconfig&lt;br /&gt;sudo ln -s ~/git/masa/.gitk ~/.gitk&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-76235413781987360?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=76235413781987360' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/76235413781987360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/76235413781987360'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2010/08/lucid-lynx.html' title='再インストールメモ Lucid Lynx'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-7873084422050068488</id><published>2010-08-17T01:44:00.004+09:00</published><updated>2010-08-17T23:43:11.119+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thinkpad'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>thinkpadX200 ubuntu10.04 トラックポイントの設定</title><content type='html'>ubuntu10.04をインストールした場合halをつかわなくなったようなので&lt;br /&gt;書き換えが必要。&lt;br /&gt;sudo vim /usr/lib/X11/xorg.conf.d/20-thinkpad.conf&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Section "InputClass"&lt;br /&gt;    Identifier "Trackpoint Wheel Emulation"&lt;br /&gt;    MatchProduct "TrackPoint"&lt;br /&gt;    MatchDevicePath "/dev/input/event*"&lt;br /&gt;    Driver "evdev"&lt;br /&gt;    Option "EmulateWheel" "true"&lt;br /&gt;    Option "EmulateWheelButton" "2"&lt;br /&gt;    Option "Emulate3Buttons" "false"&lt;br /&gt;    Option "XAxisMapping" "6 7"&lt;br /&gt;    Option "YAxisMapping" "4 5"&lt;br /&gt;EndSection&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-7873084422050068488?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=7873084422050068488' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/7873084422050068488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/7873084422050068488'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2010/08/thinkpadx200-ubuntu1004.html' title='thinkpadX200 ubuntu10.04 トラックポイントの設定'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-4562378187415263723</id><published>2010-08-10T18:12:00.007+09:00</published><updated>2010-08-10T21:27:48.788+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>CentOSからPowerEdge R200のBIOSとファームウェアをアップデートする</title><content type='html'>&lt;a href="http://memocache.blogspot.com/2010/08/poweredge-r200ipmi-serial-over-lan.html"&gt;OMSA&lt;/a&gt;をインストールしたあと&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;yum install dell_ft_install&lt;br /&gt;yum install $(bootstrap_firmware)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;バージョン確認&lt;br /&gt;&lt;blockquote&gt;inventory_firmware&lt;br /&gt;Wait while we inventory system:&lt;br /&gt;System inventory:&lt;br /&gt;        System BIOS for PowerEdge R200 = 1.4.3&lt;br /&gt;        BMC = 1.83&lt;br /&gt;        BIOS = 1.4.3&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;アップデートを表示&lt;br /&gt;&lt;blockquote&gt;update_firmware&lt;br /&gt;Running system inventory...&lt;br /&gt;&lt;br /&gt;Searching storage directory for available BIOS updates...&lt;br /&gt;Checking System BIOS for PowerEdge R200 - 1.4.3&lt;br /&gt;        Did not find a newer package to install that meets all installation checks.&lt;br /&gt;Checking BMC - 1.83&lt;br /&gt;        Available: dell_dup_componentid_05814 - 1.83&lt;br /&gt;        Did not find a newer package to install that meets all installation checks.&lt;br /&gt;Checking BIOS - 1.4.3&lt;br /&gt;        Available: dell_dup_componentid_00159 - 1.4.3&lt;br /&gt;        Did not find a newer package to install that meets all installation checks.&lt;br /&gt;&lt;br /&gt;This system does not appear to have any updates available.&lt;br /&gt;No action necessary.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;アップデート&lt;br /&gt;&lt;blockquote&gt;update_firmware --yes&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-4562378187415263723?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=4562378187415263723' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4562378187415263723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4562378187415263723'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2010/08/centospoweredge-r200bios.html' title='CentOSからPowerEdge R200のBIOSとファームウェアをアップデートする'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-8902228746357113810</id><published>2010-08-10T17:06:00.004+09:00</published><updated>2010-08-10T17:14:17.275+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>DELL OMSAを32bitから64ネイティブバージョン6.3にアップデートする</title><content type='html'>普通にyum updateしたら&lt;br /&gt;updateできなくなっていた。&lt;br /&gt;DELL OMSA(OpenManage Server Administrator)の6.2までは64bit環境でも32bitバイナリだったけど&lt;br /&gt;6.3からは64bitネイティブに変わったので&lt;br /&gt;yum で不整合がでている。&lt;br /&gt;32bitバージョンをいったんeraseしなければいけない。&lt;br /&gt;&lt;br /&gt;以下で問題解決できたのでメモ&lt;br /&gt;&lt;blockquote&gt;yum erase $(rpm -qa | grep srvadmin)&lt;br /&gt;yum erase openwsman-server-2.1.5Dell-2.1.el5.i386&lt;br /&gt;yum erase openwsman-client-2.1.5Dell-2.1.el5.i386&lt;br /&gt;wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi  | bash&lt;br /&gt;yum install srvadmin-all&lt;br /&gt;yum update osabmcutil9g&lt;br /&gt;&lt;br /&gt;service dsm_bmu_solproxy32 start&lt;br /&gt;chkconfig --add dsm_bmu_solproxy32&lt;br /&gt;chkconfig dsm_bmu_solproxy32 on&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-8902228746357113810?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=8902228746357113810' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8902228746357113810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8902228746357113810'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2010/08/dell-omsa32bit6463.html' title='DELL OMSAを32bitから64ネイティブバージョン6.3にアップデートする'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-149624576284577167</id><published>2010-08-02T16:51:00.034+09:00</published><updated>2011-01-13T17:24:38.313+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>標準構成のPowerEdge R200でIPMI Serial Over LAN</title><content type='html'>遠隔地でシリアルコンソールを使う&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_62kmOI0bTrA/TFaWIqbAfYI/AAAAAAAAAcQ/VfNhmo88hsQ/s1600/ipmi3.jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_62kmOI0bTrA/TFaWIqbAfYI/AAAAAAAAAcQ/VfNhmo88hsQ/s400/ipmi3.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5500749070450326914" /&gt;&lt;/a&gt;&lt;br /&gt;遠隔地でBIOSをいじる&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_62kmOI0bTrA/TFaTd3iHwQI/AAAAAAAAAcE/0j_usAQozP4/s1600/ipmi2.jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_62kmOI0bTrA/TFaTd3iHwQI/AAAAAAAAAcE/0j_usAQozP4/s400/ipmi2.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5500746136212193538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;何のオプションもつけていない素のdell PowerEdge R200で&lt;br /&gt;Serial Over LANできたのでメモしておきます。&lt;br /&gt;dellの1Uサーバで最も安いPowerEdge R200は&lt;br /&gt;dellがキャンペーンをやっているときに買えばかなり安いし&lt;br /&gt;quadコアxeon,メモリ8Gまでのせられるのでwebサーバ用なら十分かと。&lt;br /&gt;DRACカード(サーバ全部につけたら結構な金額になってしまう)&lt;br /&gt;を付けないとIPMI Serial Over LANできないらしいという雰囲気だったが、&lt;br /&gt;がんばってみたら動いたので設定などをさらしておきます。&lt;br /&gt;&lt;br /&gt;環境はCentos5.5 64bit&lt;br /&gt;&lt;br /&gt;DELL OMSA(OpenManage Server Administrator)を導入する&lt;br /&gt;&lt;blockquote&gt;#リポジトリの追加&lt;br /&gt;sudo su -&lt;br /&gt;wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi  | bash&lt;br /&gt;&lt;br /&gt;#インストール&lt;br /&gt;yum install srvadmin-all&lt;br /&gt;&lt;br /&gt;service instsvcdrv start&lt;br /&gt;service dsm_sa_ipmi start&lt;br /&gt;service dsm_om_connsvc start&lt;br /&gt;service dsm_om_shrsvc start&lt;br /&gt;service dataeng start&lt;br /&gt;&lt;br /&gt;chkconfig --add instsvcdrv&lt;br /&gt;chkconfig --add dsm_sa_ipmi&lt;br /&gt;chkconfig --add dsm_om_connsvc&lt;br /&gt;chkconfig --add dsm_om_shrsvc&lt;br /&gt;chkconfig --add dataeng&lt;br /&gt;chkconfig --add dsm_bmu_solproxy32&lt;br /&gt;&lt;br /&gt;chkconfig instsvcdrv on&lt;br /&gt;chkconfig dsm_sa_ipmi on&lt;br /&gt;chkconfig dsm_om_connsvc on&lt;br /&gt;chkconfig dsm_om_shrsvc on&lt;br /&gt;chkconfig dsm_bmu_solproxy32 on&lt;br /&gt;chkconfig dataeng on&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;このままでは再起動したときに全部が動かなかったので&lt;br /&gt;再起動して100秒たったらデーモンを再起動するようにして回避した&lt;br /&gt;以下を作成する&lt;br /&gt;&lt;blockquote&gt;vim /root/omsa.sh&lt;br /&gt;&lt;pre name="code" class="c"&gt;#!/bin/sh&lt;br /&gt;sleep 100&lt;br /&gt;/sbin/service instsvcdrv stop&lt;br /&gt;/sbin/service dsm_sa_ipmi stop&lt;br /&gt;/sbin/service dsm_om_connsvc stop&lt;br /&gt;/sbin/service dsm_om_shrsvc stop&lt;br /&gt;/sbin/service dataeng stop&lt;br /&gt;&lt;br /&gt;/sbin/service instsvcdrv start&lt;br /&gt;/sbin/service dsm_sa_ipmi start&lt;br /&gt;/sbin/service dsm_om_connsvc start&lt;br /&gt;/sbin/service dsm_om_shrsvc start&lt;br /&gt;/sbin/service dataeng start&lt;/pre&gt;&lt;br /&gt;chmod a+x /root/omsa.sh&lt;br /&gt;&lt;br /&gt;vim /etc/cron.d/omsa&lt;br /&gt;-----------------------------------------&lt;br /&gt;@reboot root /root/omsa.sh &gt; /dev/null&lt;br /&gt;-----------------------------------------&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;再起動してチェックする&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;https://サーバアドレス:1311/にアクセスしてrootでログインします。&lt;br /&gt;※デフォルトではSSLで接続してポート1311です。&lt;br /&gt;&lt;br /&gt;遠隔地からログインしたい場合は&lt;br /&gt;自分のマシンの~/.ssh/configに&lt;br /&gt;&lt;blockquote&gt;Host proxy&lt;br /&gt;HostName 同じサブネットのサーバのグローバルIP&lt;br /&gt;DynamicForward 1080&lt;br /&gt;User sshユーザ名&lt;/blockquote&gt;&lt;br /&gt;と書いておいて&lt;br /&gt;&lt;blockquote&gt;masa-thinkpad% ssh proxy&lt;/blockquote&gt;&lt;br /&gt;して以下の設定をすればよい。&lt;br /&gt;クライアントマシンがwindows環境の場合はportfowarderに上のconfigファイルを食わせればよい。&lt;br /&gt;&lt;br /&gt;次にfirefoxを以下のように設定&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_62kmOI0bTrA/SztHZQ0j-YI/AAAAAAAAAaA/BUPFwXP_q9A/s1600-h/img(025).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 328px;" src="http://2.bp.blogspot.com/_62kmOI0bTrA/SztHZQ0j-YI/AAAAAAAAAaA/BUPFwXP_q9A/s400/img(025).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5421005075808254338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;https://サーバアドレスのローカルIP:1311/&lt;/blockquote&gt;&lt;br /&gt;でfirefoxでつながります。&lt;br /&gt;&lt;br /&gt;早速ブラウザでつないでみると、&lt;br /&gt;user名とパスワードを聞かれるので&lt;br /&gt;root rootのパスワードをいれる。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_62kmOI0bTrA/TFadj-aXPUI/AAAAAAAAAcc/sIW_RXBmA7s/s1600/raid1.jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_62kmOI0bTrA/TFadj-aXPUI/AAAAAAAAAcc/sIW_RXBmA7s/s400/raid1.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5500757236254195010" /&gt;&lt;/a&gt;&lt;br /&gt;ストレージ＞SAS 6/iR Integrated（RAIDコントローラ）で警告がでている。&lt;br /&gt;masterdbサーバだけはraidカードをdellから買った。&lt;br /&gt;しかし、ドライバが古すぎるようだ。&lt;br /&gt;このままでも基本機能は使えるしアップデートするとカーネルアップデートのたびに&lt;br /&gt;毎回手作業で組み込まなければいけないのでRAIDコントローラドライバのアップデートは問題がおきるまでしない方針とした&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;IPMI Serial Over LAN を設定する&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;リモートアクセス設定ユーティリティ(起動時にBIOS画面でctrl+e)か&lt;br /&gt;https://サーバアドレス:1311/から&lt;br /&gt;IPMI Over LANのリモートアクセス用のIPアドレスを設定&lt;br /&gt;IPMI Over LANのリモートアクセス用のIPアドレスはサーバのIPと同じにしてはいけない。(以下の対応表参照)&lt;br /&gt;IPMI Over LANをONに設定&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_62kmOI0bTrA/TFaegcuz50I/AAAAAAAAAcs/_dy3sx9H_1I/s1600/bmc2.jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_62kmOI0bTrA/TFaegcuz50I/AAAAAAAAAcs/_dy3sx9H_1I/s400/bmc2.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5500758275185174338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;サーバの対応表&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;一番右がIPMI Over LANのリモートアクセス用のIPアドレス。ただしこのIPにpingをうっても反応はない。真ん中がリアルIPアドレス。&lt;br /&gt;example-lvs      192.168.1.1  192.168.1.101&lt;br /&gt;example-masterdb 192.168.1.2  192.168.1.102&lt;br /&gt;example-slavedb  192.168.1.3  192.168.1.103&lt;br /&gt;example-web2     192.168.1.4  192.168.1.104&lt;br /&gt;example-web1     192.168.1.5  192.168.1.105&lt;br /&gt;example-lvs2     192.168.1.10 192.168.1.110&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_62kmOI0bTrA/TGI5vH-NPSI/AAAAAAAAAdI/NUTwnOFd-nA/s1600/masa.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 270px;" src="http://2.bp.blogspot.com/_62kmOI0bTrA/TGI5vH-NPSI/AAAAAAAAAdI/NUTwnOFd-nA/s400/masa.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5504025176356764962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;BIOS画面でF2か&lt;br /&gt;https://サーバアドレス:1311/&lt;br /&gt;から入って Serial を BMC NIC にする&lt;br /&gt;Serial Port を Serial 1 にし、 19200を指定&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_62kmOI0bTrA/TFaeBJpuCII/AAAAAAAAAck/l7tRPBWnp7g/s1600/bmc1.jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_62kmOI0bTrA/TFaeBJpuCII/AAAAAAAAAck/l7tRPBWnp7g/s400/bmc1.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5500757737487599746" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;yum install osabmcutil9g&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;serial consoleの設定をする&lt;/span&gt;&lt;br /&gt;vim /etc/inittab&lt;br /&gt;&lt;blockquote&gt;co:2345:respawn:/sbin/agetty -h 19200 ttyS0 vt100&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;init q&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;rootでシリアルログインできるようにする&lt;/span&gt;&lt;br /&gt;vim /etc/securetty&lt;br /&gt;以下を追記する&lt;br /&gt;&lt;blockquote&gt;ttyS0&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;ブート中のカーネルメッセージをみる場合&lt;br /&gt;vim /etc/grub.conf&lt;br /&gt;&lt;blockquote&gt;default=0&lt;br /&gt;timeout=5&lt;br /&gt;serial --unit=0 --speed=19200 --word=8 --parity=no --stop=1←追加&lt;br /&gt;terminal --timeout=5 console serial←追加&lt;br /&gt;#splashimage=(hd0,2)/grub/splash.xpm.gz←コメントアウト&lt;br /&gt;hiddenmenu&lt;br /&gt;title CentOS (2.6.18-194.8.1.el5)&lt;br /&gt;root (hd0,2)&lt;br /&gt;kernel /vmlinuz-2.6.18-194.8.1.el5 ro root=/dev/VolGroup00/LogVol00 console=tty0 console=ttyS0,19200n8←console=tty0 console=ttyS0,19200n8追加&lt;br /&gt;initrd /initrd-2.6.18-194.8.1.el5.img&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;いったんリブートする&lt;br /&gt;&lt;blockquote&gt;reboot&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;######## IPMI Over LANの使い方 ##########&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;どこのサーバでもいいので&lt;br /&gt;とりあえずexample-lvsサーバで&lt;br /&gt;telnet localhost 623&lt;br /&gt;------------------以下出力-------------------------------&lt;br /&gt;Trying 127.0.0.1...&lt;br /&gt;Connected to localhost.localdomain (127.0.0.1).&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Powered by Avocent&lt;br /&gt;BMC Management Utility - SOLProxy v4.2 Release 1&lt;br /&gt;Copyright 2009 - Avocent Corporation(http://www.avocent.com/dell/bmu/ng)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;No connection&lt;br /&gt;&lt;br /&gt;1:Connect to the Remote Server's BMC&lt;br /&gt;2:Configure the Serial-Over-LAN for the Remote Server&lt;br /&gt;3:Activate Console Redirection&lt;br /&gt;4:Reboot and Activate Console Redirection&lt;br /&gt;5:Help&lt;br /&gt;6:Exit&lt;br /&gt;&lt;br /&gt;Please select the item(press 1, 2, 3, 4, 5, 6):&lt;br /&gt;-------------------------------------------------------------&lt;br /&gt;ここで1を選ぶ&lt;br /&gt;---------------以下出力-------------------------------------&lt;br /&gt;Server Address:192.168.1.102 ←リモートアクセス用のIP(example-masterdbにつなぐ場合)&lt;br /&gt;Username:root&lt;br /&gt;Password:calvin←dellのデフォルトパスワード(変更しておくのが望ましい)&lt;br /&gt;Key: ←空でenter&lt;br /&gt;&lt;br /&gt;SOLProxy Status:Connected.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Powered by Avocent&lt;br /&gt;BMC Management Utility - SOLProxy v4.2 Release 1&lt;br /&gt;Copyright 2009 - Avocent Corporation(http://www.avocent.com/dell/bmu/ng)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Current connection:192.168.1.102:root←example-masterdbサーバに入った&lt;br /&gt;&lt;br /&gt;1:Connect to the Remote Server's BMC&lt;br /&gt;2:Configure the Serial-Over-LAN for the Remote Server&lt;br /&gt;3:Activate Console Redirection&lt;br /&gt;4:Reboot and Activate Console Redirection&lt;br /&gt;5:Help&lt;br /&gt;6:Exit&lt;br /&gt;&lt;br /&gt;Please select the item(press 1, 2, 3, 4, 5, 6):&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;3を選ぶ&lt;br /&gt;サーバをリブートしたければここで4を選択する&lt;br /&gt;--------------------以下出力--------------------------------&lt;br /&gt;Activating remote console now.&lt;br /&gt;Remote console is now active and ready for user input.&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;enterキーを押す&lt;br /&gt;--------------------以下出力--------------------------------&lt;br /&gt;&lt;br /&gt;login:root&lt;br /&gt;Password: ←example-masterdbのrootパスワード&lt;br /&gt;[07-07 14:51:44 root@example-masterdb /root] ←シリアルログイン成功&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# IPMI Over LAN接続を切る&lt;br /&gt;ctrl-d か exitコマンド でログアウトしたあと&lt;br /&gt;ctrl+] を入力(だめなら~.をタイプする)&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-149624576284577167?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=149624576284577167' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/149624576284577167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/149624576284577167'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2010/08/poweredge-r200ipmi-serial-over-lan.html' title='標準構成のPowerEdge R200でIPMI Serial Over LAN'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_62kmOI0bTrA/TFaWIqbAfYI/AAAAAAAAAcQ/VfNhmo88hsQ/s72-c/ipmi3.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-5477785723370707854</id><published>2010-07-31T18:21:00.036+09:00</published><updated>2010-09-27T20:03:40.724+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>グローバルIPのないサーバ群を外部からnagiosで監視する</title><content type='html'>サーバ構成(すべてCentOSで構築)&lt;br /&gt;&lt;blockquote&gt;example-lvs   ロードバランサ兼ルータ&lt;br /&gt;&lt;br /&gt;example-web1  webサーバ　VIPでロードバランス&lt;br /&gt;&lt;br /&gt;example-web2  webサーバ　VIPでロードバランス&lt;br /&gt;&lt;br /&gt;example-masterdb  mysqlサーバ グローバルIPなし&lt;br /&gt;&lt;br /&gt;example-slavedb   mysqlサーバ グローバルIPなし&lt;br /&gt;&lt;br /&gt;nagios-central  サイト外部にあるnagios中央サーバ&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_62kmOI0bTrA/TGI5vH-NPSI/AAAAAAAAAdI/NUTwnOFd-nA/s1600/masa.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 270px;" src="http://2.bp.blogspot.com/_62kmOI0bTrA/TGI5vH-NPSI/AAAAAAAAAdI/NUTwnOFd-nA/s400/masa.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5504025176356764962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;上記のような構成なので&lt;br /&gt;サイトに割り当てられたグローバルIP(一個)にアクセスすると&lt;br /&gt;web1かweb2サーバに1:1の割合で負荷分散される&lt;br /&gt;&lt;br /&gt;こういったサイトの場合nagiosで監視するには&lt;br /&gt;&lt;blockquote&gt;1.すべてのマシンにグローバルIPを割り当てる&lt;br /&gt;2.同一サブネット内にnagiosサーバをたてる&lt;br /&gt;3.同一サブネット内にnagios中継サーバをたててその結果をサイト外のnagios中央サーバに転送する&lt;/blockquote&gt;&lt;br /&gt;といった方法になる。&lt;br /&gt;1.は全てにグローバルIPを割り当てるのは勿体無いのとDBサーバなどはむしろ割り当てる必要がないので却下&lt;br /&gt;2.は監視は行えるがルータ兼ロードバランサであるexample-lvsやネットがまるごと落ちてしまった場合nagiosから警告がこないのが問題。外部からネットワークを監視するスクリプトを仕込むのも悪くないがnagiosで一元化したいので却下&lt;br /&gt;3.ではルータやネットがまるごと落ちてしまった場合nagios中央サーバはnagios中継サーバからデータが送られてこない場合、一定時間で警告するようにするので上記の問題は解決できるので3を採用した。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;このサイトの場合割り当てられたグローバルIP(一個)でsshするとexample-lvsにつながる。&lt;br /&gt;これは他のサーバにつながるようにしておくとそのサーバが落ちたときsshできなくなるのを防ぐため。実は待機系のexample-lvs2もいるが今回は関係ないので省略する。&lt;br /&gt;グローバルIP(一個)でhttpでアクセスするとweb1かweb2につながる。&lt;br /&gt;example-lvsにnagios中継サーバをおいてもよいが、&lt;br /&gt;example-web1とexample-web2はミラーリングしておりweb1がマスターサーバであるので&lt;br /&gt;example-web1に二つめのグローバルIPアドレスを割り当てることにした。&lt;br /&gt;グローバルIPの二つめがexample-web1に向いているため、&lt;br /&gt;example-web1にnagios中継サーバをインストールする。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;example-web1をnagios中継サーバにする&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;# nagiosインストール&lt;br /&gt;sudo su -&lt;br /&gt;yum -y install gd-devel&lt;br /&gt;useradd -d /usr/local/nagios/ -M nagios&lt;br /&gt;&lt;br /&gt;# 最新版をブラウザでチェックする&lt;br /&gt;http://sourceforge.net/projects/nagios/files/nagios-3.x/&lt;br /&gt;&lt;br /&gt;wget http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.2.1/nagios-3.2.1.tar.gz/download&lt;br /&gt;tar zxvf nagios-3.2.1.tar.gz&lt;br /&gt;cd nagios-3.2.1/&lt;br /&gt;./configure &amp;&amp; make all &amp;&amp; make fullinstall &amp;&amp; make install-config&lt;br /&gt;cd ..&lt;br /&gt;&lt;br /&gt;yum -y install mysql-devel&lt;br /&gt;&lt;br /&gt;# 最新版をブラウザでチェックする&lt;br /&gt;http://sourceforge.net/projects/nagiosplug/files/nagiosplug/&lt;br /&gt;&lt;br /&gt;wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.14/nagios-plugins-1.4.14.tar.gz/download&lt;br /&gt;tar zxvf nagios-plugins-1.4.14.tar.gz&lt;br /&gt;cd nagios-plugins-1.4.14/&lt;br /&gt;./configure &amp;&amp; make &amp;&amp; make install&lt;br /&gt;&lt;br /&gt;# メモリチェックプラグインインストール&lt;br /&gt;cp contrib/check_mem.pl /usr/local/nagios/libexec/&lt;br /&gt;vim /usr/local/nagios/libexec/check_mem.pl ←メモリチェックプラグイン修正&lt;br /&gt;--------------------------------------------------------------------------&lt;br /&gt;$command_line = `vmstat | tail -1 | awk '{print \$4,\$5}'`;この行をコメントアウトして&lt;br /&gt;↓&lt;br /&gt;$command_line = `free | head -3 | tail -1 | awk '{print \$3,\$4}'`; ←変更&lt;br /&gt;--------------------------------------------------------------------------&lt;br /&gt;chmod +x /usr/local/nagios/libexec/check_mem.pl&lt;br /&gt;cd ..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;############################### Nagios設定 ##############################&lt;br /&gt;vim /usr/local/nagios/etc/nagios.cfg&lt;br /&gt;------------------------------------------------------------------------------&lt;br /&gt;cfg_dir=/usr/local/nagios/etc/servers ← コメント解除(サーバー監視設定有効化)&lt;br /&gt;&lt;br /&gt;date_format=iso8601 ← 日付書式をYYYY-MM-DD HH:MM:SSにする&lt;br /&gt;------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;mkdir /usr/local/nagios/etc/servers&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim /usr/local/nagios/etc/objects/localhost.cfg&lt;br /&gt;-------------------------------------------------------------------------------&lt;br /&gt;define service{&lt;br /&gt;use                             local-service         ; Name of service template to use&lt;br /&gt;host_name                       example-web1&lt;br /&gt;service_description             SSH&lt;br /&gt;check_command                   check_ssh&lt;br /&gt;notifications_enabled           1 ← 1を指定(SSH状態変化時に通知する)&lt;br /&gt;}&lt;br /&gt;-------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin&lt;br /&gt;New password: ←パスワード設定&lt;br /&gt;Re-type new password: ←パスワード設定&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/etc/rc.d/init.d/nagios start&lt;br /&gt;chkconfig --add nagios&lt;br /&gt;chkconfig nagios on&lt;br /&gt;&lt;br /&gt;/etc/rc.d/init.d/httpd reload&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;############################ 自ホストの監視 ################################&lt;br /&gt;vim /usr/local/nagios/etc/objects/commands.cfg&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;以下を最終行へ追加&lt;br /&gt;# 'check_mem' command definition&lt;br /&gt;define command{&lt;br /&gt;command_name    check_mem&lt;br /&gt;command_line    $USER1$/check_mem.pl -f -w $ARG1$ -c $ARG2$&lt;br /&gt;}&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim /usr/local/nagios/etc/objects/localhost.cfg&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;以下を最終行へ追加&lt;br /&gt;define service{&lt;br /&gt;use                             generic-service&lt;br /&gt;host_name                       example-web1&lt;br /&gt;service_description             Memory Free&lt;br /&gt;check_command                   check_mem!20!10 ;空きメモリ量が20%で警告、10%で異常とする&lt;br /&gt;}&lt;br /&gt;-----------------------------------------------------------------------&lt;br /&gt;/etc/rc.d/init.d/nagios restart&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim /usr/local/nagios/etc/objects/localhost.cfg&lt;br /&gt;----------------------------------------------------------------------&lt;br /&gt;以下を最終行へ追加&lt;br /&gt;define service{&lt;br /&gt;use                             generic-service&lt;br /&gt;host_name                       example-web1&lt;br /&gt;service_description             SMTP&lt;br /&gt;check_command                   check_smtp&lt;br /&gt;}&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;/etc/rc.d/init.d/nagios restart&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim /usr/local/nagios/etc/objects/localhost.cfg&lt;br /&gt;----------------------------------------------------------------------&lt;br /&gt;以下を最終行へ追加&lt;br /&gt;define service{&lt;br /&gt;use                             generic-service&lt;br /&gt;host_name                       example-web1&lt;br /&gt;service_description             POP&lt;br /&gt;check_command                   check_pop&lt;br /&gt;}&lt;br /&gt;----------------------------------------------------------------------&lt;br /&gt;/etc/rc.d/init.d/nagios restart&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;☆SSL証明書の残り期限監視&lt;br /&gt;vim /usr/local/nagios/etc/objects/commands.cfg&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;# ssl証明書の監視&lt;br /&gt;define command{&lt;br /&gt;command_name check_http_cert&lt;br /&gt;command_line $USER1$/check_http -H $ARG1$ -p $ARG2$ -C 30&lt;br /&gt;}&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;vim /usr/local/nagios/etc/objects/localhost.cfg&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;以下を最終行へ追加&lt;br /&gt;define service{&lt;br /&gt;use                             generic-service&lt;br /&gt;host_name                       example-web1&lt;br /&gt;service_description             SSL_Cert&lt;br /&gt;check_command                   check_http_cert!localhost!443 ;&lt;br /&gt;}&lt;br /&gt;-----------------------------------------------------------------------&lt;br /&gt;/etc/rc.d/init.d/nagios restart&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;######################## 監視ホスト追加 ########################&lt;br /&gt;例としてホスト名example-web2、ローカルIPアドレス192.168.1.4を監視ホストとして追加する。&lt;br /&gt;nagios中継サーバー側&lt;br /&gt;vim /usr/local/nagios/etc/servers/example-web2.cfg ← ホスト名.cfg作成&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;define host{&lt;br /&gt;use                     linux-server&lt;br /&gt;host_name               example-web2&lt;br /&gt;alias                   example-web2&lt;br /&gt;address                 192.168.1.4&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;define service{&lt;br /&gt;use                             generic-service&lt;br /&gt;host_name                       example-web2&lt;br /&gt;service_description             PING&lt;br /&gt;check_command                   check_ping!100.0,20%!500.0,60%&lt;br /&gt;}&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;/etc/rc.d/init.d/nagios restart&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;######### Nagiosのアドオンnrpeで他サーバーのサービスを監視する。############&lt;br /&gt;nagios中継サーバ側&lt;br /&gt;# 最新版を確認する&lt;br /&gt;http://sourceforge.net/projects/nagios/files/nrpe-2.x/&lt;br /&gt;sudo su -&lt;br /&gt;wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz/download&lt;br /&gt;tar zxvf nrpe-2.12.tar.gz&lt;br /&gt;cd nrpe-2.12/&lt;br /&gt;./configure &amp;&amp; make check_nrpe &amp;&amp; make install-plugin&lt;br /&gt;cd ..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;監視対象サーバー側&lt;br /&gt;yum -y install xinetd&lt;br /&gt;yum -y install openssl-devel&lt;br /&gt;useradd -d /usr/local/nagios/ -M nagios&lt;br /&gt;mkdir /usr/local/nagios&lt;br /&gt;chown nagios:nagios /usr/local/nagios/&lt;br /&gt;# 最新版確認&lt;br /&gt;http://sourceforge.net/projects/nagios/files/nrpe-2.x/&lt;br /&gt;wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz/download&lt;br /&gt;tar zxvf nrpe-2.12.tar.gz&lt;br /&gt;cd nrpe-2.12&lt;br /&gt;./configure &amp;&amp; make nrpe &amp;&amp; make install-daemon &amp;&amp; make install-daemon-config &amp;&amp; make install-xinetd&lt;br /&gt;cd ..&lt;br /&gt;yum -y install mysql-devel&lt;br /&gt;# 最新版確認&lt;br /&gt;http://sourceforge.net/projects/nagiosplug/files/nagiosplug/&lt;br /&gt;wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.14/nagios-plugins-1.4.14.tar.gz/download&lt;br /&gt;tar zxvf nagios-plugins-1.4.14.tar.gz&lt;br /&gt;cd nagios-plugins-1.4.14/&lt;br /&gt;./configure &amp;&amp; make &amp;&amp; make install&lt;br /&gt;cp contrib/check_mem.pl /usr/local/nagios/libexec/&lt;br /&gt;vim /usr/local/nagios/libexec/check_mem.pl&lt;br /&gt;----------------------------------------------------&lt;br /&gt;$command_line = `vmstat | tail -1 | awk '{print \$4,\$5}'`;&lt;br /&gt;↓&lt;br /&gt;$command_line = `free | head -3 | tail -1 | awk '{print \$3,\$4}'`; ←変更&lt;br /&gt;----------------------------------------------------&lt;br /&gt;chmod +x /usr/local/nagios/libexec/check_mem.pl&lt;br /&gt;cd ..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;■nrpe設定&lt;br /&gt;nagios中継サーバー側&lt;br /&gt;vim /usr/local/nagios/etc/objects/commands.cfg&lt;br /&gt;----------------------------------------------------------------------&lt;br /&gt;以下を最終行へ追加&lt;br /&gt;# 'check_nrpe' command definition&lt;br /&gt;define command{&lt;br /&gt;command_name    check_nrpe&lt;br /&gt;command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$&lt;br /&gt;}&lt;br /&gt;----------------------------------------------------------------------&lt;br /&gt;/etc/rc.d/init.d/nagios restart&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;監視対象サーバー側&lt;br /&gt;echo "nrpe 5666/tcp # NRPE" &gt;&gt; /etc/services&lt;br /&gt;vim /etc/xinetd.d/nrpe&lt;br /&gt;------------------------------------------------------------------------------&lt;br /&gt;192.168.1.5(nagios中継サーバのローカルIPアドレスを追加)&lt;br /&gt;service nrpe&lt;br /&gt;{&lt;br /&gt;flags           = REUSE&lt;br /&gt;socket_type     = stream&lt;br /&gt;port            = 5666&lt;br /&gt;wait            = no&lt;br /&gt;user            = nagios&lt;br /&gt;group           = nagios&lt;br /&gt;server          = /usr/local/nagios/bin/nrpe&lt;br /&gt;server_args     = -c /usr/local/nagios/etc/nrpe.cfg --inetd&lt;br /&gt;log_on_failure  += USERID&lt;br /&gt;disable         = no&lt;br /&gt;only_from       = 127.0.0.1 192.168.1.5&lt;br /&gt;}&lt;br /&gt;-------------------------------------------------------------------------------&lt;br /&gt;/etc/rc.d/init.d/xinetd restart&lt;/blockquote&gt;&lt;br /&gt;こんな感じでnrpeでnagios中継サーバにデータを集めるようにしておく。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;nagios中継サーバにNSCAをセットアップ&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;vim /usr/local/nagios/etc/nagios.cfg&lt;br /&gt;-------------------------------------------------------------------&lt;br /&gt;enable_notifications=0&lt;br /&gt;メールによる通知を無効にする。通知はnagios中央サーバ側で行うので、nagios中継サーバでの通知は不要となる。&lt;br /&gt;obsess_over_services=1&lt;br /&gt;各サービスのチェックが終わった直後にocsp_commandオプションで指定されたコマンドを実行するための設定。&lt;br /&gt;ocsp_command=submit_check_result&lt;br /&gt;各サービスのチェックが終わった直後に実行するコマンド名。&lt;br /&gt;-------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;yum install libmcrypt-devel&lt;br /&gt;wget http://sourceforge.net/projects/nagios/files/nsca-2.x/nsca-2.7.2/nsca-2.7.2.tar.gz/download&lt;br /&gt;tar zxvf nsca-2.7.2.tar.gz&lt;br /&gt;cd nsca-2.7.2&lt;br /&gt;./configure&lt;br /&gt;make all&lt;br /&gt;&lt;br /&gt;cp src/send_nsca /usr/local/nagios/bin/&lt;br /&gt;chown nagios:nagios /usr/local/nagios/bin/send_nsca&lt;br /&gt;chmod 755 /usr/local/nagios/bin/send_nsca&lt;br /&gt;cp sample-config/send_nsca.cfg /usr/local/nagios/etc/&lt;br /&gt;chown nagios:nagios /usr/local/nagios/etc/send_nsca.cfg&lt;br /&gt;chmod 640 /usr/local/nagios/etc/send_nsca.cfg&lt;br /&gt;&lt;br /&gt;vim /usr/local/nagios/etc/send_nsca.cfg&lt;br /&gt;-------------------------------------------------------------------&lt;br /&gt;password=yourpassword&lt;br /&gt;encryption_method=3&lt;br /&gt;-------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;vim /usr/local/nagios/etc/objects/commands.cfg&lt;br /&gt;-----------------------------------------------&lt;br /&gt;# for nsca client&lt;br /&gt;define command{&lt;br /&gt;command_name    submit_check_result&lt;br /&gt;command_line    /usr/local/nagios/libexec/submit_check_result $HOSTNAME$ '$SERVICEDESC$' $SERVICESTATEID$ '$SERVICEOUTPUT$'&lt;br /&gt;}&lt;br /&gt;-----------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim /usr/local/nagios/libexec/submit_check_result&lt;br /&gt;-------------------------------------------------&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;central_server="xxx.xxx.xxx.xxx"←nagios中央サーバのグローバルIPアドレス&lt;br /&gt;&lt;br /&gt;# Arguments:&lt;br /&gt;#  $1 = host_name (Short name of host that the service is&lt;br /&gt;#       associated with)&lt;br /&gt;#  $2 = svc_description (Description of the service)&lt;br /&gt;#  $3 = state_string (A string representing the status of&lt;br /&gt;#       the given service - "OK", "WARNING", "CRITICAL"&lt;br /&gt;#       or "UNKNOWN")&lt;br /&gt;#  $4 = plugin_output (A text string that should be used&lt;br /&gt;#       as the plugin output for the service checks)&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# Convert the state string to the corresponding return code&lt;br /&gt;return_code=-1&lt;br /&gt;&lt;br /&gt;case "$3" in&lt;br /&gt;OK)&lt;br /&gt;return_code=0&lt;br /&gt;;;&lt;br /&gt;WARNING)&lt;br /&gt;return_code=1&lt;br /&gt;;;&lt;br /&gt;CRITICAL)&lt;br /&gt;return_code=2&lt;br /&gt;;;&lt;br /&gt;UNKNOWN)&lt;br /&gt;return_code=-1&lt;br /&gt;;;&lt;br /&gt;[0-2])&lt;br /&gt;return_code=$3&lt;br /&gt;;;&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;# pipe the service check info into the send_nsca program, which&lt;br /&gt;# in turn transmits the data to the nsca daemon on the central&lt;br /&gt;# monitoring server&lt;br /&gt;&lt;br /&gt;/usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$return_code" "$4" | /usr/local/nagios/bin/send_nsca $central_server -c /usr/local/nagios/etc/send_nsca.cfg&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;chown nagios:nagios /usr/local/nagios/libexec/submit_check_result&lt;br /&gt;chmod 750 /usr/local/nagios/libexec/submit_check_result&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;nagios中央サーバのNSCAをセットアップ&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;yum install libmcrypt-devel&lt;br /&gt;wget http://sourceforge.net/projects/nagios/files/nsca-2.x/nsca-2.7.2/nsca-2.7.2.tar.gz/download&lt;br /&gt;tar zxvf nsca-2.7.2.tar.gz&lt;br /&gt;cd nsca-2.7.2&lt;br /&gt;./configure&lt;br /&gt;make all&lt;br /&gt;&lt;br /&gt;cp src/nsca /usr/local/nagios/bin/&lt;br /&gt;chown nagios:nagios /usr/local/nagios/bin/nsca&lt;br /&gt;chmod 755 /usr/local/nagios/bin/nsca&lt;br /&gt;cp sample-config/nsca.cfg /usr/local/nagios/etc/&lt;br /&gt;chown nagios:nagios /usr/local/nagios/etc/nsca.cfg&lt;br /&gt;chmod 640 /usr/local/nagios/etc/nsca.cfg&lt;br /&gt;cp init-script /etc/init.d/nsca&lt;br /&gt;chmod 755 /etc/init.d/nsca&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim /usr/local/nagios/etc/nagios.cfg&lt;br /&gt;-------------------------------------------------------------&lt;br /&gt;enable_notifications=1&lt;br /&gt;メールによる通知を有効にする。異常が発見された場合の通知は全てnagios中央サーバで行う。&lt;br /&gt;execute_service_checks=1&lt;br /&gt;もしnagios中央サーバ側でNSCAによる受動的な監視以外の監視活動を行う場合は1、全ての監視結果をNSCA経由で受け取る場合は0にする。&lt;br /&gt;check_external_commands=1&lt;br /&gt;外部コマンドのチェックを有効にする。NagiosとNSCAは外部コマンドを通じて状態を取得する。&lt;br /&gt;--------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim /usr/local/nagios/etc/nsca.cfg&lt;br /&gt;-------------------------------------------------------------------&lt;br /&gt;password=yourpassword&lt;br /&gt;decryption_method=3&lt;br /&gt;-------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim /usr/local/nagios/etc/objects/templates.cfg&lt;br /&gt;--------------------------------------------------&lt;br /&gt;define host{&lt;br /&gt;name                            linux-server2&lt;br /&gt;use                             generic-host&lt;br /&gt;check_period                    24x7&lt;br /&gt;max_check_attempts              10&lt;br /&gt;notification_period             24x7&lt;br /&gt;notification_interval           120&lt;br /&gt;notification_options            d,u,r&lt;br /&gt;contact_groups                  admins&lt;br /&gt;register                        0&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;define service{&lt;br /&gt;name                    generic-passive&lt;br /&gt;use                     generic-service&lt;br /&gt;active_checks_enabled   0&lt;br /&gt;check_freshness         1&lt;br /&gt;freshness_threshold     600&lt;br /&gt;check_command           service-is-stale&lt;br /&gt;register                0&lt;br /&gt;}&lt;br /&gt;---------------------------------------------------&lt;br /&gt;active_checks_enabled 0&lt;br /&gt;このサービスではアクティブチェックを無効にする。つまり、check_commandによるチェックは行わない。&lt;br /&gt;check_freshness 1&lt;br /&gt;鮮度チェック。一定時間遠隔サーバからの情報更新が無かった場合に警告が出るようにする。&lt;br /&gt;freshness_threshold 600&lt;br /&gt;鮮度チェックのしきい値(秒)。10分間遠隔サーバから通知が無かったら期限切れとして、check_commandを実行する。&lt;br /&gt;check_command service-is-stale&lt;br /&gt;期限切れになった場合にのみservice-is-staleコマンドを実行する。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim /usr/local/nagios/etc/objects/localhost.cfg&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;define host{&lt;br /&gt;use                     linux-server2&lt;br /&gt;host_name               example-lvs&lt;br /&gt;alias                   example-lvs&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;define service{&lt;br /&gt;use                             generic-passive&lt;br /&gt;host_name                       example-lvs&lt;br /&gt;service_description             PING&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;define service{&lt;br /&gt;use                             generic-passive&lt;br /&gt;host_name                       example-lvs&lt;br /&gt;service_description             Current Load&lt;br /&gt;}&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;host_name, service_descriptionの名前はnagios中継サーバ上での定義とあわせる必要がある。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim /usr/local/nagios/etc/objects/commands.cfg&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;以下を最終行へ追加&lt;br /&gt;define command{&lt;br /&gt;command_name    service-is-stale&lt;br /&gt;command_line    $USER1$/check_dummy 2 'CRITICAL: Service results are stale!'&lt;br /&gt;}&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;chkconfig --add nsca&lt;br /&gt;chkconfig --list nsca&lt;br /&gt;nsca            0:off   1:off   2:on    3:on    4:on    5:on    6:off&lt;br /&gt;service nsca start&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_62kmOI0bTrA/TFRPagOHWqI/AAAAAAAAAbs/4WECJblogvQ/s1600/Nagios.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 242px;" src="http://4.bp.blogspot.com/_62kmOI0bTrA/TFRPagOHWqI/AAAAAAAAAbs/4WECJblogvQ/s400/Nagios.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5500108361670548130" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-5477785723370707854?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=5477785723370707854' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/5477785723370707854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/5477785723370707854'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2010/07/ipnagios.html' title='グローバルIPのないサーバ群を外部からnagiosで監視する'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_62kmOI0bTrA/TGI5vH-NPSI/AAAAAAAAAdI/NUTwnOFd-nA/s72-c/masa.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-3254501589993877451</id><published>2010-07-27T00:54:00.021+09:00</published><updated>2010-09-27T14:26:11.864+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><title type='text'>L2 Switchのポートをcentosから死活監視する</title><content type='html'>サーバのNICはlinuxのbondingドライバで冗長化していますが&lt;br /&gt;冗長化したどちらかが壊れた時にすぐ気づかないので、&lt;br /&gt;L2 SwitchのACTIVE_PORTを監視して&lt;br /&gt;L2 SwitchのポートのダウンとNICのダウンに備えることにした。&lt;br /&gt;&lt;br /&gt;方針&lt;br /&gt;&lt;blockquote&gt;アクティブポートがサーバで使っているポート数未満になったらメールをとばす&lt;br /&gt;これでスイッチのポートの死活監視とNICのbondingを監視できるはず&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;まず、L2 Switchにtelnetかシリアルコンソールかブラウザでログインして&lt;br /&gt;L2 SwitchのIPアドレスとuser名とpasswordを設定しておく。&lt;br /&gt;&lt;br /&gt;以下ProCurve Switch 2610-24の例ですが、&lt;br /&gt;telnetできるL2 Switchなら少し書き換えれば動くと思われます。&lt;br /&gt;&lt;pre name="code" class="cpp"&gt;#!/bin/sh&lt;br /&gt;# monitor_switch.sh スイッチのアクティブポートが不通になったら警告する&lt;br /&gt;# /root/monitor_switch.sh に置く&lt;br /&gt;&lt;br /&gt;# switchのIPアドレス&lt;br /&gt;HOSTNAME=192.168.10.111&lt;br /&gt;# switchのログインユーザ名&lt;br /&gt;USER=user&lt;br /&gt;# switchのログインパスワード&lt;br /&gt;PASSWORD=password&lt;br /&gt;# switchでアクティブになっているポートの数&lt;br /&gt;# この数未満になったら警告する。以上を許可しているのは緊急時データセンターの回線にノートパソコンなどをつなぐ場合警告がでるから&lt;br /&gt;# ただし、サーバを増やしたときはこの数を変更しないと警告がこないので注意&lt;br /&gt;NUMBER_OF_ACTIVE_PORT=13&lt;br /&gt;# 実際に動いているポートを指定する1,2,3,4は1-4で省略表記可能&lt;br /&gt;ACTIVE_PORT=1,3-12,25-26&lt;br /&gt;&lt;br /&gt;expect -c "&lt;br /&gt;set timeout 5&lt;br /&gt;spawn telnet $HOSTNAME&lt;br /&gt;expect \"Press any key to continue\"&lt;br /&gt;send \r&lt;br /&gt;expect \"*Username:\"&lt;br /&gt;send \"$USER\r\"&lt;br /&gt;expect \"*Password:\"&lt;br /&gt;send \"$PASSWORD\r\"&lt;br /&gt;expect \"*ProCurve Switch 2610-24#\"&lt;br /&gt;send \"show interfaces brief $ACTIVE_PORT\r\"&lt;br /&gt;expect \"*ProCurve Switch 2610-24#\"&lt;br /&gt;send \"exit\r\"&lt;br /&gt;expect \"*ProCurve Switch 2610-24&gt;\"&lt;br /&gt;send \"exit\r\"&lt;br /&gt;expect \"*Do you want to log out\"&lt;br /&gt;send \"y\r\"&lt;br /&gt;expect *#&lt;br /&gt;send \"exit\r\"&lt;br /&gt;"| awk '/Up/ {LINE+=1} END{if (LINE &gt;= '"$NUMBER_OF_ACTIVE_PORT"')print "OK";else system("echo Some ports of the switch DOWN | mail -s L2SW_emergency root")}'&lt;/pre&gt;show interfaces brief $ACTIVE_PORTの部分がProCurveの内部コマンド&lt;br /&gt;なので便宜スイッチの内部コマンドに変更してください。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/etc/cron.d/switch あたりに書いておいてcronで起動する&lt;br /&gt;&lt;blockquote&gt;10,30,50 * * * * root /root/monitor_switch.sh &gt; /dev/null 2&gt;&amp;1&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;/etc/aliasesのrootに自分のメールアドレスを設定して&lt;br /&gt;root宛のメールを転送するのをお忘れなく。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-3254501589993877451?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=3254501589993877451' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/3254501589993877451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/3254501589993877451'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2010/07/l2-switch.html' title='L2 Switchのポートをcentosから死活監視する'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-6914923864615837703</id><published>2010-06-08T17:17:00.010+09:00</published><updated>2010-09-27T14:27:31.468+09:00</updated><title type='text'>USB2-PCADPNをubuntuで使う</title><content type='html'>USB2-PCADPNはPCカードスロットのないパソコンでも、USBポートを使ってEMOBILEデータカードを使用できるUSB変換アダプターです。&lt;br /&gt;このインチキなUSB変換アダプターをlinuxでつなぐのはさらにインチキな感じですが&lt;br /&gt;普通に使えたので設定などを書いておきます。&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="cpp"&gt;user "em@em"&lt;br /&gt;connect "/usr/sbin/chat -v -f /etc/chatscripts/pap -T *99***2#"&lt;br /&gt;/dev/ttyACM4&lt;br /&gt;115200&lt;br /&gt;&lt;br /&gt;noipdefault&lt;br /&gt;usepeerdns&lt;br /&gt;defaultroute&lt;br /&gt;persist&lt;br /&gt;noauth&lt;/pre&gt;を/etc/ppp/peers/emobileに置く&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;sudo tail -f /var/log/messages&lt;/blockquote&gt;&lt;br /&gt;しながらUSBに指すと&lt;br /&gt;ttyACM4とかttyACM1とか&lt;br /&gt;変化するので/dev/ttyACM4を適時変更する&lt;br /&gt;*99***2#も端末によっては違うので注意する&lt;br /&gt;&lt;br /&gt;接続&lt;br /&gt;&lt;blockquote&gt;sudo pon emobile&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;切断&lt;br /&gt;&lt;blockquote&gt;sudo poff emobile&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-6914923864615837703?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=6914923864615837703' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/6914923864615837703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/6914923864615837703'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2010/06/usb2-pcadpnwo.html' title='USB2-PCADPNをubuntuで使う'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-9038235227452862541</id><published>2009-12-28T19:20:00.080+09:00</published><updated>2010-07-12T12:45:31.169+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>sshで帰省準備 リモートでfirefoxを使う(実家で自宅のfirefoxを使う)</title><content type='html'>帰省するにあたって、&lt;br /&gt;いちいちデータを帰省時に持って帰るノートPCに移すのは面倒くさいし、&lt;br /&gt;ノートPCの容量の問題もあるし(開発用マシンであるノートPCに余計なものは入れたくない)&lt;br /&gt;たいてい必要なものに限って必要な時にないものであるから、&lt;br /&gt;自宅のデスクトップPC(ubuntu)をデータサーバにしてしのぐことにする。&lt;br /&gt;※以下自宅のデスクトップがmasa-desktop 実家に持って帰るノートPCがmasa-thinkpadとする &lt;br /&gt;&lt;br /&gt;ノートPCの~/.ssh/config(無ければ新規作成する)&lt;blockquote&gt; Host masa-desktop(お好きな名前を)&lt;br /&gt;   HostName 自宅のIPアドレス(固定IPでないならddnsのドメインなど)&lt;br /&gt;   User masa(自宅のマシンのログインユーザ名)&lt;br /&gt;&lt;br /&gt; Host *&lt;br /&gt;  ServerAliveInterval 200&lt;br /&gt;  Compression yes&lt;br /&gt;  CompressionLevel 9&lt;br /&gt;  ForwardX11 yes&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;デスクトップPCで&lt;br /&gt;&lt;blockquote&gt;masa-desktop% sudo apt-get install openssh-server&lt;/blockquote&gt;&lt;br /&gt;帰省時に持って帰るノートPCで自宅のデスクトップPCに公開鍵を登録しておく&lt;br /&gt;&lt;blockquote&gt;masa-thinkpad% ssh-copy-id masa-desktop&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;自宅のデスクトップマシンのsshd_configを設定&lt;br /&gt;公開鍵認証だけでアクセスできるようにしておく。&lt;br /&gt;&lt;blockquote&gt;masa-desktop% sudo vim /etc/ssh/sshd_config&lt;br /&gt;--------------------------------------------------&lt;br /&gt;PermitRootLogin no&lt;br /&gt;RSAAuthentication yes&lt;br /&gt;PubkeyAuthentication yes&lt;br /&gt;PasswordAuthentication no&lt;br /&gt;AllowUsers masa&lt;br /&gt;X11Forwarding yes&lt;br /&gt;Match Address 192.168.*&lt;br /&gt;    PasswordAuthentication yes&lt;br /&gt;--------------------------------------------------&lt;br /&gt;masa-desktop% sudo /etc/init.d/ssh restart&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;wan側からアクセスできなくなるので&lt;br /&gt;sshのポートだけルータで開放しておくことを忘れずに。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;デスクトップPC(自宅)の動画や音楽などをノートPC(実家)で聞きたい場合&lt;/span&gt;&lt;br /&gt;sshfsでマウントする&lt;br /&gt;インストール&lt;blockquote&gt;masa-thinkpad% sudo apt-get install sshfs&lt;/blockquote&gt;&lt;br /&gt;マウントポイントを作成&lt;blockquote&gt;masa-thinkpad% mkdir sshfs&lt;/blockquote&gt;&lt;br /&gt;マウントする&lt;blockquote&gt;masa-thinkpad% sshfs masa-desktop:/ ~/sshfs -o reconnect&lt;br /&gt;masa-thinkpad% sshfs masa-desktop: ~/sshfs -o reconnect  #homeディレクトリだけの場合&lt;/blockquote&gt;マウントしてしまえば&lt;br /&gt;ノートPCの~/sshfs ディレクトリ以下が自宅のデスクトップマシンになるので&lt;br /&gt;普通にノートPCのファイラでノートPCのGUIアプリも使える。動画でも音楽でも手元のマシンにあるように聞けるようになる。vlcはデフォルトのまま動画がみれる。MPlayerはpreferencesのvideoドライバをX11にすれば見れるようになる。&lt;br /&gt;終わったらアンマウントする&lt;br /&gt;&lt;blockquote&gt;masa-thinkpad% fusermount -u ~/sshfs&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;デスクトップ(自宅)のGUIアプリケーションをノートPC(実家)で使いたい場合&lt;/span&gt;&lt;br /&gt;sshのX11 Forwardingで、リモート(自宅)のアプリケーションをノートPC(実家)で実行する。&lt;br /&gt;&lt;blockquote&gt;masa-thinkpad% ssh -X masa-desktop&lt;br /&gt;masa@masa-desktop:~$ gedit&lt;/blockquote&gt;&lt;br /&gt;日本語入力できるかリモートのgeditを起動してチェック&lt;br /&gt;日本語入力ができない場合は以下からノートPCで使っているIMにあった環境変数を設定する。&lt;br /&gt;&lt;blockquote&gt;export XMODIFIERS="@im=ibus"    # ibus&lt;br /&gt;export XMODIFIERS="@im=SCIM"    # scim&lt;br /&gt;export XMODIFIERS="@im=kinput2" # kinput2&lt;br /&gt;export XMODIFIERS="@im=htt"     # iiim&lt;br /&gt;export XMODIFIERS="@im=uim"     # uim&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;自宅のデスクトップのfirefoxでしかみれないページ(IP制限など)がある場合や&lt;br /&gt;自宅のデスクトップのfirefoxでダウンロードしたいものがある(開発用ノートPCに余計なものをいれたくない)ので&lt;br /&gt;リモート(自宅)のfirefoxを起動する&lt;br /&gt;&lt;blockquote&gt;masa-thinkpad% ssh -X masa-desktop&lt;br /&gt;masa@masa-desktop:~$ export XMODIFIERS="@im=ibus"&lt;br /&gt;masa@masa-desktop:~$ firefox -no-remote&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;手前がデスクトップのfirefox(自宅) 奥がノートPCのfirefox(実家)&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_62kmOI0bTrA/SzjLx7vMFsI/AAAAAAAAAZI/iOSVpblqWIw/s1600-h/img(022).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_62kmOI0bTrA/SzjLx7vMFsI/AAAAAAAAAZI/iOSVpblqWIw/s400/img(022).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5420306210250036930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;自宅のデスクトップマシンのメールをチェックする&lt;br /&gt;手前がデスクトップのsylpheed(自宅) 奥がノートPCのsylpheed(実家)&lt;blockquote&gt;masa-thinkpad% ssh -X masa-desktop&lt;br /&gt;masa@masa-desktop:~$ export XMODIFIERS="@im=ibus"&lt;br /&gt;masa@masa-desktop:~$ sylpheed&lt;/blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_62kmOI0bTrA/SzjxjJlNVcI/AAAAAAAAAZU/6cBZ7ADI18g/s1600-h/img(023).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_62kmOI0bTrA/SzjxjJlNVcI/AAAAAAAAAZU/6cBZ7ADI18g/s400/img(023).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5420347737710089666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ノートPCから自宅のデスクトップマシンの2chを見る&lt;br /&gt;&lt;blockquote&gt;masa-thinkpad% ssh -X masa-desktop&lt;br /&gt;masa@masa-desktop:~$ export XMODIFIERS="@im=ibus"&lt;br /&gt;masa@masa-desktop:~$ jd&lt;/blockquote&gt;ログを同期しなくても一個に集約できて(･∀･)ｲｲ!!&lt;br /&gt;奥がデスクトップのjd(自宅) 手前がノートPCのjd(実家)&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_62kmOI0bTrA/Szj4ulNe_kI/AAAAAAAAAZg/apkkM20Bi6U/s1600-h/img(024).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_62kmOI0bTrA/Szj4ulNe_kI/AAAAAAAAAZg/apkkM20Bi6U/s400/img(024).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5420355630686731842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;自宅のデスクトップのwindowsアプリを起動&lt;br /&gt;&lt;blockquote&gt;~/.wine/drive_cがwindowsフォルダなので&lt;br /&gt;起動したいアプリを適当に探してきて&lt;br /&gt;wine アプリ.exe&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;よくよく考えたら自宅のデスクトップのfirefoxでしかみれないページ(IP制限など)についてはOpenSSHのSOCKS Proxyでいけることに気づいた。&lt;br /&gt;~/.ssh/configに&lt;br /&gt;&lt;blockquote&gt; Host proxy&lt;br /&gt;  HostName (自宅のipアドレス)&lt;br /&gt;  DynamicForward 1080&lt;br /&gt; User masa(ユーザ名)&lt;/blockquote&gt;と書いておいて&lt;br /&gt;&lt;blockquote&gt;masa-thinkpad% ssh proxy&lt;/blockquote&gt;&lt;br /&gt;firefoxを以下のように設定&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_62kmOI0bTrA/SztHZQ0j-YI/AAAAAAAAAaA/BUPFwXP_q9A/s1600-h/img(025).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 328px;" src="http://2.bp.blogspot.com/_62kmOI0bTrA/SztHZQ0j-YI/AAAAAAAAAaA/BUPFwXP_q9A/s400/img(025).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5421005075808254338" /&gt;&lt;/a&gt;&lt;br /&gt;すれば解決した。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-9038235227452862541?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=9038235227452862541' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/9038235227452862541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/9038235227452862541'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/12/ssh.html' title='sshで帰省準備 リモートでfirefoxを使う(実家で自宅のfirefoxを使う)'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_62kmOI0bTrA/SzjLx7vMFsI/AAAAAAAAAZI/iOSVpblqWIw/s72-c/img(022).jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-8646174598157996712</id><published>2009-12-19T01:01:00.005+09:00</published><updated>2009-12-24T14:54:42.567+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>FreeBSDのvimが使いにくい</title><content type='html'>FreeBSD の vi で、Backspace の挙動がおかしい。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;画面表示上では削除できていないように見えるが、うまく消えているので&lt;/blockquote&gt;だそうで。&lt;br /&gt;&lt;br /&gt;とはいえ、使いにくいことこの上ないので&lt;br /&gt;vimを入れることにした。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;su&lt;br /&gt;cd /usr/ports/editors/vim&lt;br /&gt;make WITHOUT_X11=1 install　#GTK無しでvimをビルドする&lt;br /&gt;make clean&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;いれてみたが挙動がおかしいのは変わらず。&lt;br /&gt;&lt;br /&gt;仕方ないので、&lt;br /&gt;CentOSからvimの設定をパクってくることにした。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;CentOSの/etc/vimrcをFreeBSDのsshでログインするuserのHOMEに.vimrcとしてコピー&lt;br /&gt;FreeBSDのrootのHOMEに.vimrcとしてコピーする&lt;/blockquote&gt;&lt;br /&gt;これで使いやすくなった。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-8646174598157996712?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=8646174598157996712' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8646174598157996712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8646174598157996712'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/12/freebsdvim.html' title='FreeBSDのvimが使いにくい'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-8102995308014519218</id><published>2009-12-14T02:01:00.149+09:00</published><updated>2010-09-27T14:32:45.870+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>gitを知らないデザイナとgitで共同作業するには？</title><content type='html'>デザイナとgitで共同作業するまでの過程をログに残しておきます。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;第一段階&lt;/span&gt;&lt;br /&gt;会社で使っているフレームワークの&lt;br /&gt;Vの部分(いわゆるテンプレートまわりとか)はデザイナもさわるので、&lt;br /&gt;.gitignore で無視することにして、&lt;br /&gt;フレームワークのMVCのVの部分を除いてプログラマしかさわらない部分だけの&lt;br /&gt;リポジトリを作ってgitでバージョン管理することにした。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;第二段階&lt;/span&gt;&lt;br /&gt;ところが、Vの部分はデザイナしか関わらないわけではありません。&lt;br /&gt;当然のごとく、プログラマ側から&lt;br /&gt;「できればVの部分もgitでバージョン管理したい」&lt;br /&gt;との要望がでてきました。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;第三段階&lt;/span&gt;&lt;br /&gt;そこで、デザイナに「バージョン管理は何を使っていますか？」&lt;br /&gt;と聞いてみたところ「Mac の Time Capsule です。」&lt;br /&gt;と言われ若干放心状態に…。&lt;br /&gt;確かにバージョン管理的なことはできるんだろうけど。&lt;br /&gt;svnとか言う答えを期待していたので困った。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;この状況でgit覚えてもらおうなんてことをしたら、&lt;br /&gt;僕の首が飛びそうなので(デザイナの方が多い会社？)&lt;br /&gt;別の方法を考えることにした。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;実現したいことは以下のような感じ&lt;br /&gt;&lt;blockquote&gt;gitを知らないデザイナがした変更はコマンドなしでgitでバージョン管理できなければならない。&lt;br /&gt;&lt;br /&gt;本番環境(開発環境)の Vの部分 にデザイナがsftpソフトなどで転送したものと&lt;br /&gt;リポジトリが一致すればプログラマはデザイナといちいち連絡をとらなくても&lt;br /&gt;プログラマがgitでよしなにすればgitだけで完結するのでそうしたい。&lt;br /&gt;&lt;br /&gt;デザイナがミスしたときは、過去の履歴をとりだせればよい。&lt;br /&gt;&lt;br /&gt;プログラマはgitの機能はきちんと使えること&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;なので、&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight:bold;"&gt;デザイナがさわるVの部分のディレクトリを監視して変更が起きたら自動でgitにコミットする&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;という方針にすることにした。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;必要なものをインストール&lt;/span&gt;&lt;br /&gt;git1.6以上&lt;br /&gt;&lt;blockquote&gt;debian系(linuxカーネル2.6.13以上)&lt;br /&gt;sudo apt-get install inotify-tools&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;redhat系(linuxカーネル2.6.13以上)&lt;br /&gt;yum install inotify-tools(RPMforge?)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;FreeBSD&lt;br /&gt;su&lt;br /&gt;cd /ports/sysutils/wait_on&lt;br /&gt;make install clean&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;とりあえず自分のマシンでテストしてみる&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;下準備&lt;br /&gt;実行権限をつけて&lt;br /&gt;~/bin/に以下のファイルを置く&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;inotify-git(Linux版)&lt;pre name="code" class="cpp"&gt;#!/bin/bash&lt;br /&gt;#&lt;br /&gt;# inotify-git&lt;br /&gt;#&lt;br /&gt;# 対象ディレクトリを再帰的に監視し、&lt;br /&gt;# 変更をすべて git で自動コミットする&lt;br /&gt;#&lt;br /&gt;# 再起動しても勝手に監視させるには&lt;br /&gt;# /etc/rc.local に&lt;br /&gt;# su -c /home/&amp;lt;user名&amp;gt;/bin/inotify-git -l &amp;lt;user名&amp;gt;&lt;br /&gt;# を書いておく&lt;br /&gt;# 初回起動は nohup ~/bin/inotify-git &gt; out.log 2&gt; err.log &lt; /dev/null &amp;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# 監視対象から外したいものは.gitignoreに入れ,&lt;br /&gt;# inotifywait の --exclude オプションで監視しないようにする&lt;br /&gt;# inotifyのmax_user_watchesのデフォルト値は 8192 なので 増やしたい時は&lt;br /&gt;# /proc/sys/fs/inotify/max_user_watches を変更する&lt;br /&gt;&lt;br /&gt;# gitで自動更新したいディレクトリを指定&lt;br /&gt;INOTIFY_GIT_CHECK_DIRECTORY=~/inotify-git-test&lt;br /&gt;&lt;br /&gt;while true; do&lt;br /&gt;inotifywait -r -qq -e CLOSE_WRITE -e delete --exclude '.*\.swp.*' \&lt;br /&gt;--exclude '.*\.git/.*' --exclude '.*/img/community/.*' \&lt;br /&gt;--exclude '.*/img/clock/.*' ${INOTIFY_GIT_CHECK_DIRECTORY};&lt;br /&gt;if [ -e ${INOTIFY_GIT_CHECK_DIRECTORY}/inotify-sleep ]; then sleep 300;&lt;br /&gt;else&lt;br /&gt;cd ${INOTIFY_GIT_CHECK_DIRECTORY};&lt;br /&gt;git add -A &gt; /dev/null 2&gt;&amp;1;&lt;br /&gt;git commit -m '自動コミット' &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;fi&lt;br /&gt;done&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;wait_on_git(FreeBSD版)&lt;pre name="code" class="cpp"&gt;#!/usr/local/bin/bash&lt;br /&gt;#&lt;br /&gt;# wait_on_git&lt;br /&gt;# FreeBSD版&lt;br /&gt;# 対象ディレクトリを再帰的に監視し、変更をすべて git で自動コミットする&lt;br /&gt;#&lt;br /&gt;# 再起動しても勝手に監視させるには&lt;br /&gt;# /etc/rc.local に&lt;br /&gt;# su -c /home/&amp;lt;user名&amp;gt;/bin/wait_on_git -l &amp;lt;user名&amp;gt;&lt;br /&gt;# を書いておく&lt;br /&gt;# 初回起動は nohup ~/bin/wait_on_git &gt; out.log 2&gt; err.log &lt; /dev/null &amp;&lt;br /&gt;#&lt;br /&gt;# 監視対象から外したいものは.gitignoreに入れる&lt;br /&gt;&lt;br /&gt;# gitで自動更新したいディレクトリを指定&lt;br /&gt;WAIT_ON_GIT_CHECK_DIRECTORY=~/wait-on-git-test&lt;br /&gt;&lt;br /&gt;while true; do&lt;br /&gt;wait_on ${WAIT_ON_GIT_CHECK_DIRECTORY};&lt;br /&gt;if [ -e ${WAIT_ON_GIT_CHECK_DIRECTORY}/wait-on-sleep ]; then sleep 300;&lt;br /&gt;else&lt;br /&gt;cd ${WAIT_ON_GIT_CHECK_DIRECTORY};&lt;br /&gt;git add -A &gt; /dev/null 2&gt;&amp;1;&lt;br /&gt;git commit -m '自動コミット' &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;fi&lt;br /&gt;done&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;.gitignoreを$HOME直下に用意する&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;.gitignore&lt;pre name="code" class="cpp"&gt;#ゴミは無視&lt;br /&gt;nbproject&lt;br /&gt;.DS_Store&lt;br /&gt;Thumbs.db&lt;br /&gt;Desktop.ini&lt;br /&gt;*.swp&lt;br /&gt;*_flymake.php&lt;br /&gt;.#*&lt;br /&gt;&lt;br /&gt;#無視するディレクトリ(ユーザが生成するコンテンツ)&lt;br /&gt;img/community/*&lt;br /&gt;img/clock/*&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;~/inotify-git-test ディレクトリを フレームワークのVの部分と仮定してテストする&lt;/span&gt;&lt;br /&gt;gitでリポジトリをつくり&lt;br /&gt;初回コミットをすませておく。&lt;br /&gt;&lt;blockquote&gt;nohup ~/bin/inotify-git &gt; out.log 2&gt; err.log &lt; /dev/null &amp;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;で起動せず、普通にinotify-gitを実行する(自分のマシンでのテストなので)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_62kmOI0bTrA/SyUwNwpimeI/AAAAAAAAAVM/x31ambApXY8/s1600-h/img(003).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_62kmOI0bTrA/SyUwNwpimeI/AAAAAAAAAVM/x31ambApXY8/s400/img(003).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414787139938458082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;masa-thinkpad% mkdir inotify-git-test&lt;br /&gt;masa-thinkpad% cd inotify-git-test&lt;br /&gt;masa-thinkpad% cp ../.gitignore .&lt;br /&gt;masa-thinkpad% ls -al&lt;br /&gt;　合計 12&lt;br /&gt;　drwxr-xr-x   2 masa masa 4096 2009-12-14 01:53 ./&lt;br /&gt;　drwxr-xr-x 101 masa masa 4096 2009-12-14 01:53 ../&lt;br /&gt;　-rw-r--r--   1 masa masa  188 2009-12-14 01:52 .gitignore&lt;br /&gt;masa-thinkpad% git init&lt;br /&gt;　Initialized empty Git repository in /home/masa/inotify-git-test/.git/&lt;br /&gt;masa-thinkpad% git add .&lt;br /&gt;masa-thinkpad% git commit -m 'initial commit'&lt;br /&gt;　[master (root-commit) 442e58c] initial commit&lt;br /&gt;　1 files changed, 12 insertions(+), 0 deletions(-)&lt;br /&gt;　create mode 100644 .gitignore&lt;br /&gt;masa-thinkpad% cd ../bin&lt;br /&gt;masa-thinkpad% ./inotify-git&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;inotify-gitが動き出したので&lt;br /&gt;screenで別のシェルを起動しておく&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_62kmOI0bTrA/SyUxpCU1pFI/AAAAAAAAAVc/eieJ8yCkKpA/s1600-h/img(005).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_62kmOI0bTrA/SyUxpCU1pFI/AAAAAAAAAVc/eieJ8yCkKpA/s400/img(005).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414788708051559506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;masa-thinkpad% cd inotify-git-test/&lt;br /&gt;masa-thinkpad% ls -al&lt;br /&gt;　合計 16&lt;br /&gt;　drwxr-xr-x   3 masa masa 4096 2009-12-14 03:05 ./&lt;br /&gt;　drwxr-xr-x 101 masa masa 4096 2009-12-14 03:22 ../&lt;br /&gt;　drwxr-xr-x   8 masa masa 4096 2009-12-14 03:22 .git/&lt;br /&gt;　-rw-r--r--   1 masa masa  184 2009-12-14 03:05 .gitignore&lt;br /&gt;masa-thinkpad%&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;準備ができたのでファイルを新規作成してみる&lt;/span&gt;&lt;br /&gt;とりあえずemacsでinotify-git-testディレクトリ直下にthinkpad.txtを作成&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_62kmOI0bTrA/SyUzHRW8VzI/AAAAAAAAAVo/rXaH5fzhB8o/s1600-h/img(006).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_62kmOI0bTrA/SyUzHRW8VzI/AAAAAAAAAVo/rXaH5fzhB8o/s400/img(006).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414790326994622258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;gitに自動でコミットされたか確認する&lt;br /&gt;&lt;blockquote&gt;git log -p&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_62kmOI0bTrA/SyUzmHy2neI/AAAAAAAAAVw/5gSDYQWAoj8/s1600-h/img(007).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_62kmOI0bTrA/SyUzmHy2neI/AAAAAAAAAVw/5gSDYQWAoj8/s400/img(007).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414790857003277794" /&gt;&lt;/a&gt;&lt;br /&gt;きちんと自動でコミットされています。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ディレクトリ作成のテスト&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;mkdir img&lt;br /&gt;mkdir img/community&lt;br /&gt;mkdir img/clock&lt;/blockquote&gt;&lt;br /&gt;imgディレクトリでファイルを作成し、&lt;br /&gt;img/communityディレクトリでファイルを作成し、&lt;br /&gt;img/clockディレクトリでファイルを作成し、&lt;br /&gt;&lt;blockquote&gt;git log -p&lt;/blockquote&gt;した画像&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_62kmOI0bTrA/SyU2by2vm9I/AAAAAAAAAV8/h_4UUM1c_sY/s1600-h/img(008).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_62kmOI0bTrA/SyU2by2vm9I/AAAAAAAAAV8/h_4UUM1c_sY/s400/img(008).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414793978118642642" /&gt;&lt;/a&gt;&lt;br /&gt;ちゃんとcommunityとclock直下の変化は無視されているようです。&lt;br /&gt;gitは空のディレクトリを無視するのでディレクトリをつくっただけではコミットされません。&lt;br /&gt;無視するフォルダ以外の変化は更新でも削除でもコミットされます。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;気になるのは削除された場合どうなるのかという点&lt;/span&gt;&lt;br /&gt;img/img.txtを削除してみると&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_62kmOI0bTrA/SyU31zK65BI/AAAAAAAAAWE/gOkymgxuU1g/s1600-h/img(009).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_62kmOI0bTrA/SyU31zK65BI/AAAAAAAAAWE/gOkymgxuU1g/s400/img(009).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414795524391494674" /&gt;&lt;/a&gt;&lt;br /&gt;完全に監視しているディレクトリと同期しています。&lt;br /&gt;監視しているディレクトリ下で間違って消してしまったファイルもなくなります。&lt;br /&gt;間違って消してしまったファイルはsftpソフトで転送しているならば、&lt;br /&gt;デザイナのマシンにあるはずですが、何かあったとき消してしまったファイルをとり戻せるにこしたことはありません。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;消してしまったファイルをとり戻す&lt;/span&gt;&lt;br /&gt;消してしまったファイル名くらいは分かるハズなので&lt;br /&gt;ファイル名から履歴を検索します。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;git log -- img/img.txt&lt;/blockquote&gt;&lt;br /&gt;で消してしまったファイルに関するコミットを探す。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_62kmOI0bTrA/SyU7KtgvfjI/AAAAAAAAAWQ/EPBoeGJpESY/s1600-h/img(010).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_62kmOI0bTrA/SyU7KtgvfjI/AAAAAAAAAWQ/EPBoeGJpESY/s400/img(010).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414799182184545842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;commit a4a42ed052115336a2800388cdafe10c586bb044&lt;br /&gt;commit 202c87bad9ac7087574624a6398582057892cab1&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;のどちらかが自動で消してしまったコミットに違いないので&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;git show a4a42ed052115336a2800388cdafe10c586bb044&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_62kmOI0bTrA/SyU8Cmmc_tI/AAAAAAAAAWY/oDf4D2_Dx_M/s1600-h/img(011).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_62kmOI0bTrA/SyU8Cmmc_tI/AAAAAAAAAWY/oDf4D2_Dx_M/s400/img(011).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414800142402125522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;commit a4a42ed052115336a2800388cdafe10c586bb044が犯人だったようだ。&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ファイルを間違って消してしまったコミットが分かったのでそのコミットを打ち消すコミットをしてやれば&lt;br /&gt;ファイルを取り戻すことができる。&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;git revert a4a42ed052115336a2800388cdafe10c586bb044 &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;消してしまったファイルが復活した&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_62kmOI0bTrA/SyU9vSoGr-I/AAAAAAAAAWg/ZqX8gz6aVxE/s1600-h/img(012).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_62kmOI0bTrA/SyU9vSoGr-I/AAAAAAAAAWg/ZqX8gz6aVxE/s400/img(012).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414802009646084066" /&gt;&lt;/a&gt;&lt;br /&gt;だたし監視しているディレクトリ上で&lt;br /&gt;git revertコマンドをうつとファイルが復元するのを感知して&lt;br /&gt;git revertによるコミットと自動コミットによるコミットの二回コミットが動いてしまう。&lt;br /&gt;二回目のコミットは何も変更ないので実害はないがコマンドラインでエラーをはくのが嫌な感じ。&lt;br /&gt;監視しているディレクトリ直下にinotify-sleep(FreeBSD版はwait-on-sleep)ファイルを作成すると5分間sleepするので&lt;br /&gt;その間にgit revertする。&lt;br /&gt;あるいは、他のリポジトリから今いるリポジトリをgit pullして他のリポジトリでgit revertコマンドをうつのがお行儀がよさそう。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;負荷テストをする&lt;/span&gt;&lt;br /&gt;inotifyのmax_user_watchesのデフォルト値は 8192 なので&lt;br /&gt;8000ほどのファイルの監視をしてみる。&lt;br /&gt;&lt;br /&gt;thinkpad.txtをzshで8000個新規作成してみる。&lt;br /&gt;&lt;blockquote&gt;for i in {1..8000} ; do ;cp thinkpad.txt thinkpad${i}.txt ;done&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_62kmOI0bTrA/SyVCEYc2IoI/AAAAAAAAAW0/Gu7kPlJJpQs/s1600-h/img(014).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_62kmOI0bTrA/SyVCEYc2IoI/AAAAAAAAAW0/Gu7kPlJJpQs/s400/img(014).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414806770033238658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;gitkで確認する&lt;br /&gt;&lt;blockquote&gt;gitk&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_62kmOI0bTrA/SyVCixXmQwI/AAAAAAAAAW8/eeUnJp0IVn8/s1600-h/img(015).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_62kmOI0bTrA/SyVCixXmQwI/AAAAAAAAAW8/eeUnJp0IVn8/s400/img(015).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414807292118188802" /&gt;&lt;/a&gt;&lt;br /&gt;監視されているディレクトリでなにか変なコマンドをうたないかぎり&lt;br /&gt;Fast forwardになるはずなので基本的に放置しておけば大丈夫そう。&lt;br /&gt;CPU負荷はCore2DUOのマシンで数パーセントあるのかないのかくらい。&lt;br /&gt;はかるのが面倒くさいくらい気にならないからまぁよしとする。&lt;br /&gt;inotifywait自体はepollぽいので負荷はほとんどない。&lt;br /&gt;一気に8000ファイル作成してもすぐgitにコミットされる。&lt;br /&gt;&lt;br /&gt;これは使いものになるかもしれない。&lt;br /&gt;とりあえず、今日社内の開発サーバにぶちこんでみます。&lt;br /&gt;どうなることやら(´･ω･`)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;追記&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_62kmOI0bTrA/SzRsy2OQodI/AAAAAAAAAYk/OSMAwfSWkUk/s1600-h/img(017).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_62kmOI0bTrA/SzRsy2OQodI/AAAAAAAAAYk/OSMAwfSWkUk/s400/img(017).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5419075872438133202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_62kmOI0bTrA/SzRwpyozZsI/AAAAAAAAAYw/LPeatWw2W3I/s1600-h/img(021).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_62kmOI0bTrA/SzRwpyozZsI/AAAAAAAAAYw/LPeatWw2W3I/s400/img(021).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5419080114903410370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_62kmOI0bTrA/SzRssSAyIeI/AAAAAAAAAYc/cnpSGJQQKWQ/s1600-h/img(019).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_62kmOI0bTrA/SzRssSAyIeI/AAAAAAAAAYc/cnpSGJQQKWQ/s400/img(019).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5419075759638716898" /&gt;&lt;/a&gt;&lt;br /&gt;なんだかマージコミットがすごいことになってますが、&lt;br /&gt;問題なく使えているので常用することになりました。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;プログラマのワークフロー&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;自動でコミットされたリポジトリ(ココ)の共有リポジトリ(bareリポジトリ)を開発サーバにつくったので&lt;br /&gt;共有リポジトリに対して自動コミットされたリポジトリから git pushして共有リポジトリに変更を反映。&lt;br /&gt;&lt;br /&gt;git pushできないときはnon-fast forwardになっているはずなので、&lt;br /&gt;監視しているディレクトリ直下にinotify-sleep(FreeBSD版はwait-on-sleep)ファイルをつくって&lt;br /&gt;監視を5分間sleepさせておきgit pullして、コンフリクトがあれば解決し、git pushする。&lt;br /&gt;監視しているディレクトリが本番環境であった場合は&lt;br /&gt;一時的とはいえコンフリクトファイルができる可能性があるのはよろしくないので、&lt;br /&gt;プログラマの個人リポジトリから監視しているディレクトリのあるリポジトリをgit pullし、&lt;br /&gt;プログラマの個人リポジトリでコンフリクトを解決する。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;プログラマは共有リポジトリを自分の個人リポジトリからgit pullして作業を開始する。&lt;br /&gt;作業が一段落したら共有リポジトリにgit pushする。&lt;br /&gt;&lt;br /&gt;自動でコミットされたリポジトリに変更を適応するには、&lt;br /&gt;監視しているディレクトリ直下にinotify-sleep(FreeBSD版はwait-on-sleep)ファイルをつくって&lt;br /&gt;監視を5分間sleepさせておきそのすきにgit pullして自動更新されるリポジトリに変更を反映する。&lt;br /&gt;最後にinotify-sleep(FreeBSD版はwait-on-sleep)を消して終了&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-8102995308014519218?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=8102995308014519218' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8102995308014519218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8102995308014519218'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/12/git.html' title='gitを知らないデザイナとgitで共同作業するには？'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_62kmOI0bTrA/SyUwNwpimeI/AAAAAAAAAVM/x31ambApXY8/s72-c/img(003).jpeg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-3255175429563029229</id><published>2009-12-13T19:49:00.012+09:00</published><updated>2009-12-13T21:26:25.023+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>gnome-terminalが起動時に最大化するようにする</title><content type='html'>なぜかgnome-terminalは以前のサイズを覚えてくれない。&lt;br /&gt;毎回ウインドウサイズを変更するのも面倒だし、&lt;br /&gt;Thinkpadでしか使わないので画面のサイズ的に毎回最大化すればよいし、&lt;br /&gt;screen を使うから画面のサイズがでかくても最大化してくれるほうがうれしい。&lt;br /&gt;そこで gnome-terminal が起動すると最大化するように設定することにした。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;gnome-terminal --geometry とかでもサイズと位置はいじれるが最大化する方法がよくわからんので、&lt;br /&gt;compizの力をかりることにする。&lt;br /&gt;compiz config 設定マネージャをインストールする。&lt;blockquote&gt;sudo apt-get install compizconfig-settings-manager&lt;/blockquote&gt;&lt;br /&gt;システム→設定→compiz config 設定マネージャを開いて&lt;br /&gt;ウインドウのルールを有効にして&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_62kmOI0bTrA/SyTJJqpI27I/AAAAAAAAATc/5HxZeitCvL4/s1600-h/cos90.jpg.jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_62kmOI0bTrA/SyTJJqpI27I/AAAAAAAAATc/5HxZeitCvL4/s400/cos90.jpg.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414673819909020594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;画像のように最大化の部分を&lt;br /&gt;&lt;blockquote&gt;(class=terminal) | class=Terminal&lt;/blockquote&gt;に設定する&lt;br /&gt;これでGUIで端末を起動するときと&lt;br /&gt;gnome do や 端末から terminal とタイプすれば最大化されて gnome-terminal が起動する&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_62kmOI0bTrA/SyTdVe7bkqI/AAAAAAAAAVA/C9rPNukc1MY/s1600-h/img(001).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_62kmOI0bTrA/SyTdVe7bkqI/AAAAAAAAAVA/C9rPNukc1MY/s400/img(001).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414696013155504802" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;参考:&lt;a href="http://memocache.blogspot.com/2009/07/sudo-ln-s-usrbingnome-terminal.html"&gt;terminalとタイプしてgnome-terminalを起動&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-3255175429563029229?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=3255175429563029229' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/3255175429563029229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/3255175429563029229'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/12/gnome-terminal.html' title='gnome-terminalが起動時に最大化するようにする'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_62kmOI0bTrA/SyTJJqpI27I/AAAAAAAAATc/5HxZeitCvL4/s72-c/cos90.jpg.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-5176279437213082667</id><published>2009-12-12T10:41:00.012+09:00</published><updated>2009-12-15T16:02:47.570+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zsh'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>rmをやめてtrashコマンドをつかってみる</title><content type='html'>&lt;span style="font-weight:bold;"&gt;ゴミ箱にいれる&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;trash unko.pdf&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ゴミ箱を表示&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;list-trash&lt;br /&gt;2009-12-12 11:02:31 /home/masa/unko.pdf&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ゴミ箱を空にする&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;empty-trash&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ゴミ箱から戻す&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;restore-trash&lt;/blockquote&gt;&lt;br /&gt;　restore-trashを実行すると以下のように候補を出してくれるので数字で答える。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_62kmOI0bTrA/SyczQ6XzIOI/AAAAAAAAAYM/rhITbLaopy8/s1600-h/img(016).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_62kmOI0bTrA/SyczQ6XzIOI/AAAAAAAAAYM/rhITbLaopy8/s400/img(016).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5415353442576310498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;masa-thinkpad% list-trash&lt;br /&gt;2009-12-14 01:50:59 /home/masa/miyatest2&lt;br /&gt;2009-12-14 01:50:39 /home/masa/bin/inotify-git-test&lt;br /&gt;2009-12-14 22:22:25 /home/masa/inotify-git-test/thinkpad2222.txt&lt;br /&gt;2009-12-14 01:50:57 /home/masa/miyatest&lt;br /&gt;masa-thinkpad% restore-trash&lt;br /&gt;   0 2009-12-14 01:50:59 /home/masa/miyatest2&lt;br /&gt;   1 2009-12-14 01:50:39 /home/masa/bin/inotify-git-test&lt;br /&gt;   2 2009-12-14 22:22:25 /home/masa/inotify-git-test/thinkpad2222.txt&lt;br /&gt;   3 2009-12-14 01:50:57 /home/masa/miyatest&lt;br /&gt;What file to restore [0..3]: 2&lt;br /&gt;masa-thinkpad%&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;~/.zshrcに&lt;br /&gt;&lt;blockquote&gt;alias rm="trash"&lt;/blockquote&gt;と書いておけば&lt;br /&gt;間違って大事なものを消してしまうこともなかろう。&lt;br /&gt;&lt;br /&gt;たまにゴミ箱を空にするのは&lt;br /&gt;linuxをデスクトップで使っているなら当然問題ないし、&lt;br /&gt;めんどくさければcronでたまに掃除するようにすればいいだろう。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;empty-trash でゴミ箱が空になるのでゴミ箱のアイコンを消してやった。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;サーバではgnomeとかkdeを入れるわけないので自前でコマンド実装するしかないのかな？&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;インストール&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install trash-cli&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-5176279437213082667?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=5176279437213082667' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/5176279437213082667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/5176279437213082667'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/12/rmtrash.html' title='rmをやめてtrashコマンドをつかってみる'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_62kmOI0bTrA/SyczQ6XzIOI/AAAAAAAAAYM/rhITbLaopy8/s72-c/img(016).jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-2857635272334324018</id><published>2009-11-28T01:10:00.007+09:00</published><updated>2010-03-02T16:10:16.657+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='thinkpad'/><title type='text'>LinuxでThinkpadの液晶のコントラストを変更する</title><content type='html'>最近気づいたのですが、WindowsのThinkpadでは画面のコントラストが変更できます。&lt;br /&gt;Linuxでは照度はボタンで切り替えられるのですが、コントラストをいじるボタンはありません。&lt;br /&gt;ググってみるとコマンドでできるようなので、コントラストを変更して目にやさしい環境にしてみました。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;xgamma -gamma 1.0&lt;/blockquote&gt;&lt;br /&gt;これでガンマ値をお好きなように設定すればよいようです。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;usage:  xgamma [-options]&lt;br /&gt;&lt;br /&gt;where the available options are:&lt;br /&gt;    -display host:dpy       or -d&lt;br /&gt;    -quiet                  or -q&lt;br /&gt;    -screen                 or -s&lt;br /&gt;    -gamma f.f              Gamma Value&lt;br /&gt;    -rgamma f.f             Red Gamma Value&lt;br /&gt;    -ggamma f.f             Green Gamma Value&lt;br /&gt;    -bgamma f.f             Blue Gamma Value&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_62kmOI0bTrA/Sw_861EiMJI/AAAAAAAAATI/-Cc4U5j9OJo/s1600/screenshot_001.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_62kmOI0bTrA/Sw_861EiMJI/AAAAAAAAATI/-Cc4U5j9OJo/s400/screenshot_001.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5408819765103964306" /&gt;&lt;/a&gt;なんか見やすくなったような気がします。X200はコントラストを少し落とした方が目が疲れないような感じ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-2857635272334324018?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=2857635272334324018' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/2857635272334324018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/2857635272334324018'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/11/linuxthinkpad.html' title='LinuxでThinkpadの液晶のコントラストを変更する'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_62kmOI0bTrA/Sw_861EiMJI/AAAAAAAAATI/-Cc4U5j9OJo/s72-c/screenshot_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-5423974421943460686</id><published>2009-11-27T14:01:00.002+09:00</published><updated>2009-11-28T01:02:26.434+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thinkpad'/><title type='text'>thinkpadの部品を注文する</title><content type='html'>IBM部品センターの電話番号が変わったようだ。&lt;br /&gt;&lt;br /&gt;043-350-8607&lt;br /&gt;平日9：00～12：00　13：00～17：30&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-5423974421943460686?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=5423974421943460686' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/5423974421943460686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/5423974421943460686'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/11/thinkpad_27.html' title='thinkpadの部品を注文する'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-6488203485766650834</id><published>2009-11-21T07:40:00.007+09:00</published><updated>2009-11-21T07:56:29.643+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>emacs使いの為のibusとキーボードの設定</title><content type='html'>キーボードのレイアウトのオプション&lt;br /&gt;&lt;blockquote&gt;Ctrl キーの位置&lt;br /&gt;  Make CapsLock an addtional Ctrl&lt;br /&gt;&lt;br /&gt;Key sewuence to kill the X server&lt;br /&gt;  Control + Alt + Backspace&lt;/blockquote&gt;CapsLock なんて使わないから。&lt;br /&gt;X server 殺せないとリセットボタンがない(？)ThinkPadで困るかもしれないから。トラブル時に強制電源断したくない。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;キーボードショートカット&lt;br /&gt;&lt;blockquote&gt;ウインドウの管理の&lt;br /&gt;ウインドウメニューをアクティブにするを無効にする&lt;br /&gt;&lt;/blockquote&gt;Gnome Do でこのショートカットを使いたいから&lt;br /&gt;Gnome Do でWindowsのロゴがはいったキーを使いたくないから&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;以下IBusの設定&lt;br /&gt;&lt;blockquote&gt;切り替え Ctrl+Spaceを削除して、Shift+Spaceを追加&lt;/blockquote&gt;emacsのマーク(C-space)とかぶってしまうため。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;言語バーにインプットメソッド名を表示するにチェック&lt;/blockquote&gt;見やすいから。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;フォーカスアウト時の振る舞いを保持にする&lt;/blockquote&gt;Alt+tabをうっかり押してしまってフォーカスを変えてしまっても安心&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;candidates_page_up に Ctrl+B&lt;br /&gt;candidates_page_down に Ctrl+F&lt;br /&gt;&lt;/blockquote&gt;よりemacsぽくするため。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;convert_to_hiragana に Ctrl+J を追加&lt;br /&gt;convert_to_katakane に Ctrl+K を追加&lt;/blockquote&gt;ことえり風だがほかに空いている良いショートカットキーがないから。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-6488203485766650834?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=6488203485766650834' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/6488203485766650834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/6488203485766650834'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/11/emacsibus.html' title='emacs使いの為のibusとキーボードの設定'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-4732249708375166140</id><published>2009-11-21T02:59:00.008+09:00</published><updated>2009-12-10T23:36:02.848+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Empathyを使ってGoogle talkで通話する</title><content type='html'>Empathyの設定&lt;br /&gt;&lt;blockquote&gt;サーバ talk.google.com&lt;br /&gt;ポート番号 5223&lt;br /&gt;古いSSLを使うにチェックをいれる&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;これで相手が Windows の Google talkクライアント の場合は通話できた。&lt;br /&gt;Linux同士だとつながらないとの噂もあるが果たして？&lt;br /&gt;通話品質はSkypeよりいい感じ。&lt;br /&gt;Skypeのブチブチ会話がとぎれて聞こえにくいのがなくなった感じ。&lt;br /&gt;これでSkypeとはおさらばできそう。&lt;br /&gt;&lt;br /&gt;&lt;追記&gt;&lt;br /&gt;なんかよくわからないがlinux同士でもつながった&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-4732249708375166140?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=4732249708375166140' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4732249708375166140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4732249708375166140'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/11/empathygoogle-talk.html' title='Empathyを使ってGoogle talkで通話する'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-620134247348167325</id><published>2009-11-19T05:14:00.020+09:00</published><updated>2009-12-10T23:40:36.612+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome-do'/><title type='text'>emacs使いの為のgnome-doの設定</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_62kmOI0bTrA/SwRqkUe3SAI/AAAAAAAAARc/wtUFbOGc1OQ/s1600/screenshot_001.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 264px; height: 400px;" src="http://3.bp.blogspot.com/_62kmOI0bTrA/SwRqkUe3SAI/AAAAAAAAARc/wtUFbOGc1OQ/s400/screenshot_001.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5405562624957433858" /&gt;&lt;/a&gt;&lt;br /&gt;ubuntu9.10にしたら&lt;br /&gt;gnome-do(0.82)のキーバインドがいじれるようになっていたので&lt;br /&gt;設定をさらしてみる。&lt;br /&gt;&lt;br /&gt;これはやばいほどいい感じになった。&lt;br /&gt;&lt;br /&gt;ひょっとしたらもっと前からできるようになっていたのかもしれないけど…&lt;br /&gt;&lt;br /&gt;GNOME DOを呼び出す が &amp;lt;Alt&amp;gt;space になっているのは&lt;br /&gt;emacsの C-space とぶつからないように&lt;br /&gt;というか、&lt;br /&gt;Windowsの柄がはいったボタンを使いたくなかっただけ。&lt;br /&gt;&lt;br /&gt;ちなみにインプットメソッドの ON OFF は shift-space&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;全部説明しようと思ったけど面倒くさくなってきたので騙されたと思って実際にやってみるべし&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-620134247348167325?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=620134247348167325' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/620134247348167325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/620134247348167325'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/11/emacsgnome-do.html' title='emacs使いの為のgnome-doの設定'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_62kmOI0bTrA/SwRqkUe3SAI/AAAAAAAAARc/wtUFbOGc1OQ/s72-c/screenshot_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-8410130244603978792</id><published>2009-11-18T07:06:00.008+09:00</published><updated>2010-09-27T14:34:20.787+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>Gitはソースから</title><content type='html'>入門Gitの作者様がソースからいれろと書いていたので&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="cpp"&gt;sudo apt-get install build-essential&lt;br /&gt;sudo apt-get install zlib1g-dev&lt;br /&gt;cd /tmp&lt;br /&gt;wget http://www.kernel.org/pub/software/scm/git/git-1.6.5.tar.gz&lt;br /&gt;tar zxvf git-1.6.5.tar.gz&lt;br /&gt;cd git-1.6.5&lt;br /&gt;./configure&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-8410130244603978792?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=8410130244603978792' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8410130244603978792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8410130244603978792'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/11/gitubuntu910.html' title='Gitはソースから'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-5315530781504442182</id><published>2009-11-18T05:23:00.001+09:00</published><updated>2009-11-18T05:24:42.589+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='thinkpad'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>thinkpadの「戻る」「進む」キーが邪魔な件</title><content type='html'>thinkpadの&lt;br /&gt;「↑」カーソルキーの左右にある「戻る」「進む」がじゃまなので&lt;br /&gt;&lt;br /&gt;~/.Xmodmapに以下のように記述&lt;br /&gt;&lt;blockquote&gt;keycode 166 = Home&lt;br /&gt;keycode 167 = End&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;xmodmap $HOME/.Xmodmap&lt;br /&gt;&lt;/blockquote&gt;再起動&lt;br /&gt;&lt;br /&gt;keycodeはxevで調べて書く。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-5315530781504442182?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=5315530781504442182' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/5315530781504442182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/5315530781504442182'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/11/thinkpad.html' title='thinkpadの「戻る」「進む」キーが邪魔な件'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-8229018043996445907</id><published>2009-11-18T01:04:00.002+09:00</published><updated>2009-11-18T01:14:18.305+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='thinkpad'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>xrandrあれこれ</title><content type='html'>x61をもっている知り合いのために書いておく。&lt;br /&gt;たぶんみてくれないだろうけど。&lt;br /&gt;&lt;br /&gt;X61のインテルグラフィックのバーチャルスクリーンは&lt;br /&gt;2048x2048&lt;br /&gt;までなので、&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;1920x1200　(VGA)　1024x768　(LVDS)&lt;/blockquote&gt;のような横に並べるデュアルディスプレイはできません。&lt;br /&gt;&lt;br /&gt;以下のような縦にならべるなら&lt;br /&gt;&lt;blockquote&gt;1920x1200　(VGA)&lt;br /&gt;1024x768　(LVDS)&lt;/blockquote&gt;&lt;br /&gt;2048x2048に収まるのでOK。&lt;br /&gt;&lt;br /&gt;xorg.confのVirtualの部分を&lt;br /&gt;&lt;blockquote&gt;Virtual 2048 2048&lt;/blockquote&gt;にして&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;xrandr --output LVDS --mode 1024x768 --output VGA --mode 1920x1200 --above LVDS&lt;/blockquote&gt;これでOK。&lt;br /&gt;&lt;br /&gt;ちなみにX200のヴァーチャルスクリーンは&lt;br /&gt;xrandrしてみると&lt;br /&gt;maximum 8192 x 8192&lt;br /&gt;ほんとかいな。&lt;br /&gt;あとで試す。&lt;br /&gt;&lt;br /&gt;X200を使えばいいのにX61のサイズのキーボードが気に入っているそうで&lt;br /&gt;&lt;blockquote&gt;X61のキーピッチは18.5x18.5mm&lt;br /&gt;X200のキーピッチは19x19mm&lt;/blockquote&gt;わずか0.5mmの差ですが、手の小さい方には&lt;br /&gt;かなり重要な問題らしいです。&lt;br /&gt;キーボードの感触はX200のほうがいいのは認めるらしいですが。&lt;br /&gt;X210以降は狭いキーピッチのキーボードもオプションで出せば&lt;br /&gt;結構売れるのではないかと妄想してみる。&lt;br /&gt;たぶん&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-8229018043996445907?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=8229018043996445907' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8229018043996445907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8229018043996445907'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/11/xrandr.html' title='xrandrあれこれ'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-7265175925444856620</id><published>2009-11-17T18:10:00.006+09:00</published><updated>2010-02-17T22:36:00.261+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='thinkpad'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>ThinkpadのトラックポイントがLinuxのFireFoxでおかしい</title><content type='html'>LinuxのFireFoxは&lt;br /&gt;デフォルトでThinkPadの中クリックが&lt;br /&gt;コピーになっているので&lt;br /&gt;FireFoxにしょっちゅうコピペしてしまい&lt;br /&gt;使いにくいことこの上ないので&lt;br /&gt;中クリックでコピペを無効にする。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;about:config&lt;br /&gt;middlemouse.contentLoadURL&lt;br /&gt;をfalseに切り替える&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-7265175925444856620?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=7265175925444856620' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/7265175925444856620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/7265175925444856620'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/11/thinkpadlinuxfirefox.html' title='ThinkpadのトラックポイントがLinuxのFireFoxでおかしい'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-2623777184429622105</id><published>2009-11-17T17:14:00.004+09:00</published><updated>2009-11-18T01:16:27.905+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>notify-osdがずれる件(karmic)</title><content type='html'>バグではなく仕様だそうです。&lt;br /&gt;firefoxの検索とかぶるから。&lt;br /&gt;なるほど言われてみればたしかに。&lt;br /&gt;スッキリしたのでそのままなおさないことにした。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-2623777184429622105?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=2623777184429622105' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/2623777184429622105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/2623777184429622105'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/11/notify-osd.html' title='notify-osdがずれる件(karmic)'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-7623200641791190818</id><published>2009-11-17T16:34:00.004+09:00</published><updated>2009-12-10T23:29:44.008+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thinkpad'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>thinkapadx200のスクロールの設定(ubuntu karmic)</title><content type='html'>スクロールの設定&lt;br /&gt;sudo vi /etc/hal/fdi/policy/mouse-wheel.fdi&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;lt;match key="info.product" string="TPPS/2 IBM TrackPoint"&amp;gt;&lt;br /&gt; &amp;nbsp;&amp;lt;merge key="input.x11_options.EmulateWheel" type="string"&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt; &amp;nbsp;&amp;lt;merge key="input.x11_options.EmulateWheelButton" type="string"&amp;gt;2&amp;lt;/merge&amp;gt;&lt;br /&gt; &amp;nbsp;&amp;lt;merge key="input.x11_options.XAxisMapping" type="string"&amp;gt;6 7&amp;lt;/merge&amp;gt;&lt;br /&gt; &amp;nbsp;&amp;lt;merge key="input.x11_options.YAxisMapping" type="string"&amp;gt;4 5&amp;lt;/merge&amp;gt;&lt;br /&gt; &amp;nbsp;&amp;lt;merge key="input.x11_options.ZAxsisMapping" type="string"&amp;gt;4 5&amp;lt;/merge&amp;gt;&lt;br /&gt; &amp;nbsp;&amp;lt;merge key="input.x11_options.Emulate3Buttons" type="string"&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;&amp;lt;/match&amp;gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;保存したのち、再起動&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-7623200641791190818?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=7623200641791190818' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/7623200641791190818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/7623200641791190818'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/11/thinkapadx200no.html' title='thinkapadx200のスクロールの設定(ubuntu karmic)'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-76840205743734477</id><published>2009-11-17T10:00:00.003+09:00</published><updated>2009-11-17T16:43:25.368+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>kernel用のemacs</title><content type='html'>&lt;blockquote&gt;&lt;br /&gt;(defun linux-c-mode ()&lt;br /&gt;  "C mode with adjusted defaults for use with the Linux kernel."&lt;br /&gt;  (interactive)&lt;br /&gt;  (c-mode)&lt;br /&gt;  (c-set-style "K&amp;R")&lt;br /&gt;  (setq tab-width 8)&lt;br /&gt;  (setq indent-tabs-mode t)&lt;br /&gt;  (setq c-basic-offset 8))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This will define the M-x linux-c-mode command.  When hacking on a&lt;br /&gt;module, if you put the string -*- linux-c -*- somewhere on the first&lt;br /&gt;two lines, this mode will be automatically invoked. Also, you may want&lt;br /&gt;to add&lt;br /&gt;&lt;br /&gt;(setq auto-mode-alist (cons '("/usr/src/linux.*/.*\\.[ch]$" . linux-c-mode)&lt;br /&gt;                       auto-mode-alist))&lt;br /&gt;&lt;br /&gt;to your .emacs file if you want to have linux-c-mode switched on&lt;br /&gt;automagically when you edit source files under /usr/src/linux.&lt;br /&gt;&lt;br /&gt;これで M-x linux-c-mode コマンドが定義されます。ソースファイルの先頭２行&lt;br /&gt;のどこかに、「-*- linux-c -*-」という文字列を置いておけば、ハッキングする&lt;br /&gt;際に、自動的に linux-c-mode になります。また、/usr/src/linux にあるソース&lt;br /&gt;ファイルを編集する場合は自動的に linux-c-mode へ切り替えたいというのであ&lt;br /&gt;れば、「.emacs」ファイルに&lt;br /&gt;&lt;br /&gt;(setq auto-mode-alist (cons '("/usr/src/linux.*/.*\\.[ch]$" . linux-c-mode)&lt;br /&gt;                       auto-mode-alist))&lt;br /&gt;&lt;br /&gt;を加えてください。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-76840205743734477?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=76840205743734477' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/76840205743734477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/76840205743734477'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/11/kernelemacs.html' title='kernel用のemacs'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-8896052507197190965</id><published>2009-10-31T22:15:00.016+09:00</published><updated>2009-12-04T11:50:32.806+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thinkpad'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>ubuntu(karmic)でtp_smapi</title><content type='html'>X200を満充電ばかりするとバッテリーの持ちが悪くなるらしい。&lt;br /&gt;そこでほどほどに放電してから充電できるように&lt;br /&gt;tp_smapiを導入&lt;br /&gt;ubuntu9.10からは変わったようなのでやってみる。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;apt-get install tp-smapi-source&lt;br /&gt;module-assistant prepare tp-smapi&lt;br /&gt;module-assistant auto-install tp-smapi&lt;/blockquote&gt;&lt;br /&gt;tp-smapi module を選び、&lt;br /&gt;buildしてinstall&lt;br /&gt;&lt;br /&gt;/etc/modprobe.d/optionsに以下を書き込む(これをしないとmodprodeできない)&lt;br /&gt;&lt;blockquote&gt;options thinkpad_ec force_io=1&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;echo "tp_smapi" &gt;&gt; /etc/modules&lt;br /&gt;echo "hdaps" &gt;&gt; /etc/modules&lt;br /&gt;update-initramfs -u&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;modprobe -a tp_smapi hdaps&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;テストする&lt;br /&gt;&lt;blockquote&gt;echo 70 &gt; /sys/devices/platform/smapi/BAT0/stop_charge_thresh&lt;/blockquote&gt;これで70パーセント以上充電されないかテストしてみる。&lt;br /&gt;&lt;br /&gt;再起動しても効くように設定するには&lt;br /&gt;&lt;blockquote&gt;apt-get install sysfsutils&lt;/blockquote&gt;をインストールして&lt;br /&gt;&lt;br /&gt;/etc/sysfs.conf に、&lt;br /&gt;&lt;blockquote&gt;devices/platform/smapi/BAT0/start_charge_thresh=40#充電開始&lt;br /&gt;devices/platform/smapi/BAT0/stop_charge_thresh=85#充電終了&lt;br /&gt;devices/platform/smapi/BAT1/start_charge_thresh=70&lt;br /&gt;devices/platform/smapi/BAT1/stop_charge_thresh=90&lt;/blockquote&gt;再起動して完了&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-8896052507197190965?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=8896052507197190965' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8896052507197190965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8896052507197190965'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/10/tmsmapi.html' title='ubuntu(karmic)でtp_smapi'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-5724473962075422558</id><published>2009-08-14T17:04:00.002+09:00</published><updated>2009-11-17T16:36:47.300+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>メモ</title><content type='html'>emacs23.1では「M-x global-linum」の実行で&lt;br /&gt;行ラインの表示のオン / オフができる&lt;br /&gt;&lt;br /&gt;ショートカットを設定するなら&lt;br /&gt;&lt;blockquote&gt;(global-set-key "\C-cn" 'linum-mode)&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-5724473962075422558?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=5724473962075422558' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/5724473962075422558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/5724473962075422558'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/08/blog-post.html' title='メモ'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-8838355494679497758</id><published>2009-08-12T01:25:00.005+09:00</published><updated>2009-11-18T01:17:11.043+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zsh'/><title type='text'>zshrcメモそのうちちゃんと書く</title><content type='html'>bindkey "^W" vi-backward-kill-word&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-8838355494679497758?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=8838355494679497758' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8838355494679497758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/8838355494679497758'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/08/zshrc.html' title='zshrcメモそのうちちゃんと書く'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-5363651592000966240</id><published>2009-07-21T16:18:00.132+09:00</published><updated>2010-07-08T18:10:49.546+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>再インストール用メモ(ubuntu9.10)</title><content type='html'>再インストール用&lt;br /&gt;&lt;br /&gt;Shellから扱いづらいので$HOME配下を英語名に変更する。&lt;br /&gt;&lt;blockquote&gt;LANG=C xdg-user-dirs-gtk-update&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;terminalのフォント&lt;br /&gt;M+2VM+IPAG&lt;br /&gt;DejaVu Sans Mono&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;開発環境など&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install vim&lt;br /&gt;sudo apt-get install nkf&lt;br /&gt;sudo apt-get install sysv-rc-conf&lt;br /&gt;sudo apt-get install build-essential&lt;br /&gt;sudo apt-get install ttyrec&lt;br /&gt;sudo apt-get install openssh-server&lt;br /&gt;sudo apt-get install keychain&lt;br /&gt;sudo apt-get install zsh&lt;br /&gt;sudo apt-get install lv&lt;br /&gt;sudo apt-get install emacs23 emacs-goodies-el&lt;br /&gt;sudo apt-get install w3m-el-snapshot&lt;br /&gt;sudo apt-get install subversion&lt;br /&gt;sudo apt-get install apache2-utils&lt;br /&gt;sudo apt-get install sshfs&lt;br /&gt;sudo apt-get install global&lt;br /&gt;sudo apt-get install smbfs&lt;br /&gt;sudo apt-get install php5-cli&lt;br /&gt;sudo apt-get install screen&lt;br /&gt;sudo apt-get install xclip&lt;br /&gt;sudo apt-get install iotop&lt;br /&gt;sudo apt-get install migemo&lt;br /&gt;sudo apt-get install parcellite&lt;br /&gt;sudo apt-get install vlc&lt;br /&gt;sudo apt-get install winff&lt;br /&gt;sudo apt-get install gtk-recordmydesktop&lt;br /&gt;sudo apt-get install wakeonlan&lt;br /&gt;sudo apt-get install liferea&lt;br /&gt;sudo apt-get install meld&lt;br /&gt;sudo apt-get install hardinfo&lt;br /&gt;sudo apt-get install network-manager-pptp&lt;br /&gt;sudo apt-get install gpodder&lt;br /&gt;sudo apt-get install wireshark&lt;br /&gt;sudo apt-get install doxygen doxygen-gui graphviz&lt;br /&gt;sudo apt-get install xmanpages-ja&lt;br /&gt;sudo apt-get install manpages-ja&lt;br /&gt;sudo apt-get install manpages-ja-dev&lt;br /&gt;sudo apt-get install compizconfig-settings-manager&lt;br /&gt;sudo apt-get install inkscape&lt;br /&gt;sudo apt-get install gnome-gmail-notifier&lt;br /&gt;sudo dpkg-reconfigure anthy&lt;br /&gt;sudo apt-get install p7zip-full&lt;br /&gt;sudo apt-get install rar&lt;br /&gt;sudo apt-get install shutter&lt;br /&gt;sudo apt-get install pdumpfs&lt;br /&gt;sudo apt-get install pdumpfs-rsync&lt;br /&gt;sudo apt-get install kde-l10n-ja&lt;br /&gt;sudo apt-get install exaile&lt;br /&gt;sudo apt-get install ubuntu-restricted-extras&lt;br /&gt;sudo apt-get install preload&lt;br /&gt;sudo apt-get install cups-pdf&lt;br /&gt;sudo apt-get install ntfs-config&lt;br /&gt;sudo apt-get install gparted&lt;br /&gt;sudo apt-get install d4x&lt;br /&gt;sudo apt-get install sdic&lt;br /&gt;sudo apt-get install quicksynergy&lt;br /&gt;sudo apt-get install trash-cli&lt;br /&gt;sudo apt-get install dstat&lt;br /&gt;sudo apt-get install gtfp&lt;br /&gt;sudo apt-get install testdisk&lt;br /&gt;sudo apt-get install gthumb&lt;br /&gt;sudo apt-get install mplayer&lt;br /&gt;sudo apt-get install smplayer&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;chromium&lt;br /&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:chromium-daily&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install chromium&lt;br /&gt;sudo apt-get install chromium-browser-l10n&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Firefoxアドオン(#は除く)&lt;br /&gt;&lt;blockquote&gt;FireGestures&lt;br /&gt;Download Statusbar&lt;br /&gt;KeySnail&lt;br /&gt;LoL&lt;br /&gt;Bartab&lt;br /&gt;Adblock Plus&lt;br /&gt;Quick Color Switcher&lt;br /&gt;text link&lt;br /&gt;scrap book&lt;br /&gt;firebug&lt;br /&gt;FireMobileSimulator&lt;br /&gt;webdeveloper&lt;br /&gt;Tab Mix Plus&lt;br /&gt;Default FullZoom Level&lt;br /&gt;Easy DragToGo&lt;br /&gt;XUL/Migemo&lt;br /&gt;ColorZilla&lt;br /&gt;AutoPager&lt;br /&gt;HatenaBookmark&lt;br /&gt;FirefoxNotify&lt;br /&gt;ViewSourceWith&lt;br /&gt;SQlite Optimizer&lt;br /&gt;CHM Reader&lt;br /&gt;It's All Text!&lt;br /&gt;down them all&lt;br /&gt;Live HTTP Headers&lt;br /&gt;Yet Another Smooth Scrolling&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GnomeをEmacsキーバインドにする&lt;br /&gt;&lt;blockquote&gt;gconf-editor&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;desktop → gnome → interface を開いてgtk_key_theme の値を Emacs にする。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dropbox&lt;br /&gt;&lt;blockquote&gt;gpg --keyserver pgp.mit.edu --recv-keys 3565780E&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;sudo vi /etc/apt/sources.list&lt;br /&gt;&lt;/blockquote&gt;　　　以下の3行を追記&lt;br /&gt;&lt;blockquote&gt;#dropbox&lt;br /&gt;deb http://linux.dropbox.com/ubuntu karmic main&lt;br /&gt;deb-src http://linux.dropbox.com/ubuntu karmic main&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install nautilus-dropbox&lt;br /&gt;killall nautilus&lt;br /&gt;dropbox&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Wine&lt;br /&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:ubuntu-wine&lt;br /&gt;sudo apt-get install wine1.2&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Liferea&lt;br /&gt;&lt;blockquote&gt;Googleリーダー&lt;br /&gt;設定&lt;br /&gt;OPML ファイル形式で登録フィードをエクスポート&lt;br /&gt;google-reader-subscriptions.xmlを保存する。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;VirtualBox&lt;br /&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:debfx&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install virtualbox-ose&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gnome-Do&lt;br /&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:do-core&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install gnome-do&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MPlayer&lt;br /&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:rvm/mplayer&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install mplayer&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Git&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install build-essential&lt;br /&gt;sudo apt-get install zlib1g-dev&lt;br /&gt;cd /tmp&lt;br /&gt;wget http://www.kernel.org/pub/software/scm/git/git-1.6.5.tar.gz&lt;br /&gt;tar zxvf git-1.6.5.tar.gz&lt;br /&gt;cd git-1.6.5&lt;br /&gt;./configure&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-5363651592000966240?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=5363651592000966240' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/5363651592000966240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/5363651592000966240'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/07/sudo-apt-get-install-ttyrec-sudo-apt.html' title='再インストール用メモ(ubuntu9.10)'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-6794514165051732003</id><published>2009-07-19T20:41:00.030+09:00</published><updated>2009-12-13T22:25:53.588+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome-do'/><title type='text'>gnome doでターミナルを出すのが面倒くさい件</title><content type='html'>gnome doでターミナルを出すには&lt;br /&gt;gnome-terminal&lt;br /&gt;と全部打つまで候補にでてこない。&lt;br /&gt;これはさすがに毎回面倒くさい&lt;br /&gt;&lt;br /&gt;&lt;面倒くさいの図&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_62kmOI0bTrA/SyTSpZU6XDI/AAAAAAAAATo/z8J1XjrVaH4/s1600-h/cos90.jpg(002).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_62kmOI0bTrA/SyTSpZU6XDI/AAAAAAAAATo/z8J1XjrVaH4/s400/cos90.jpg(002).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414684260621245490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ターミナルなんて朝起動したら立ち上げっぱなしにしとけばいいけど&lt;br /&gt;Crtl-D を連打しすぎて、たまに消してしまったり…(´･ω･`)&lt;br /&gt;&lt;br /&gt;どうも、ハイフンが原因で履歴を拾ってショートカットを覚えてくれないようではある。&lt;br /&gt;ちゃんと調べてないけど。&lt;br /&gt;terminalと打ったらターミナルが開いてくれないと&lt;br /&gt;めんどくさいことこの上ない。&lt;br /&gt;&lt;br /&gt;ダメ元で以下のシンボリックリンクをはってみたらすんなりいけた。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;sudo ln -s /usr/bin/gnome-terminal /usr/bin/terminal&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;面倒くさくないの図&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_62kmOI0bTrA/SyTSzcMmiWI/AAAAAAAAATw/Y-bSVMlqY4Q/s1600-h/cos90.jpg(001).jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_62kmOI0bTrA/SyTSzcMmiWI/AAAAAAAAATw/Y-bSVMlqY4Q/s400/cos90.jpg(001).jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414684433190390114" /&gt;&lt;/a&gt;&lt;br /&gt;gnome do は&lt;br /&gt;/usr/bin/直下をいちいち見にいっているくさい。&lt;br /&gt;他のPATHも見にいっているのかは&lt;br /&gt;面倒くさいので調べていない。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-6794514165051732003?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=6794514165051732003' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/6794514165051732003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/6794514165051732003'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/07/sudo-ln-s-usrbingnome-terminal.html' title='gnome doでターミナルを出すのが面倒くさい件'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_62kmOI0bTrA/SyTSpZU6XDI/AAAAAAAAATo/z8J1XjrVaH4/s72-c/cos90.jpg(002).jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-106914668210272207</id><published>2009-07-17T17:47:00.003+09:00</published><updated>2009-07-19T23:14:54.957+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>gitの概念図</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_62kmOI0bTrA/SmCh8_ckPBI/AAAAAAAAALI/AaQQIDPjcBA/s1600-h/Git-transport.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 379px;" src="http://2.bp.blogspot.com/_62kmOI0bTrA/SmCh8_ckPBI/AAAAAAAAALI/AaQQIDPjcBA/s400/Git-transport.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5359461625766362130" /&gt;&lt;/a&gt;&lt;br /&gt;gitの概念図&lt;br /&gt;pullとfetchとcheckoutの違いがやっとわかった。&lt;br /&gt;とてもわかりやすい。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-106914668210272207?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=106914668210272207' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/106914668210272207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/106914668210272207'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2009/07/test.html' title='gitの概念図'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_62kmOI0bTrA/SmCh8_ckPBI/AAAAAAAAALI/AaQQIDPjcBA/s72-c/Git-transport.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5159790630402471344.post-4461814083175367190</id><published>2008-05-01T20:25:00.004+09:00</published><updated>2009-09-04T06:46:16.420+09:00</updated><title type='text'>テスト</title><content type='html'>&lt;a href="http://cafe-de-rs.com/"&gt;RSゼミナール&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5159790630402471344-4461814083175367190?l=memocache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5159790630402471344&amp;postID=4461814083175367190' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4461814083175367190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5159790630402471344/posts/default/4461814083175367190'/><link rel='alternate' type='text/html' href='http://memocache.blogspot.com/2008/05/blog-post.html' title='テスト'/><author><name>pentium64fx</name><uri>http://www.blogger.com/profile/05784820577195534169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_62kmOI0bTrA/SmDMR-vfDqI/AAAAAAAAALU/d0jIidntNYM/S220/masa.png'/></author><thr:total>0</thr:total></entry></feed>
