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

<channel>
	<title>bluegold &#187; tip</title>
	<atom:link href="http://blog.bluegold.me/tag/tip/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bluegold.me</link>
	<description>OpenSolaris と MacBook で自宅ネットワークを構築するメモ</description>
	<lastBuildDate>Thu, 26 Aug 2010 14:38:53 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>OpenSolarisのftpdでファイル一覧の表示に問題</title>
		<link>http://blog.bluegold.me/2010/02/ffftp-cannot-list-files-with-opensolaris-ftpd/</link>
		<comments>http://blog.bluegold.me/2010/02/ffftp-cannot-list-files-with-opensolaris-ftpd/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 17:31:57 +0000</pubDate>
		<dc:creator>bg</dc:creator>
				<category><![CDATA[OpenSolaris]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://blog.bluegold.me/?p=400</guid>
		<description><![CDATA[OpenSolarisのFTPサーバにWindowsのFTPソフト（FFFTP）から接続した際に、ファイル一覧が表示されない問題の解決方法。]]></description>
			<content:encoded><![CDATA[<p>外部のデザイナーさん（<a href="http://higash.net" target="_blank">HiGash.Net</a> の中の人だけど）と仕事をしたときの話です。</p>
<p>私の構築したステージング用のサーバにデザイナーさんの作ったコンテンツを置いてもらう必要があったので、「sftp でいいですか？」と聞いたら「ftpの方がいい」と言われたので、急遽 ftp サーバの用意をすることになりました。</p>
<p>軽く「いいよ」と答えたものの、自分で最後に ftpd をたてたのはもう１０年近く前のことで何も覚えてません。<br />
Solaris なのでSMFで管理されているftpdがあるだろうと思い、試してみると</p>
<pre class="bq">
$ pfexec svcadm enable ftp
$ svcs -l ftp
fmri         svc:/network/ftp:default
name         FTP server
有効         true
状態         online
next_state   none
state_time   Tue Feb 23 02:02:15 2010
リスタータ   svc:/network/inetd:default
contract_id
</pre>
<p>無事に起動できました。簡単簡単。
</p>
<p>念のため、ファイアウォール越しに ftp コマンドで接続テストを行い、passive mode が on でも off でも問題がなかったので、使ってもらいました。</p>
<p>しかし、しばらくすると<strong>「FTPサーバに接続は出来たけど、ファイルが何も表示されない」</strong>との報告が。。。</p>
<p><span id="more-400"></span></p>
<p>使っている ftp のクライアントソフトは<strong>FFFTP</strong>だという事なので、同じトラブルにあっている人がいるだろうと思いGoogleに聞いてみたところ、<a href="http://oshiete1.goo.ne.jp/qa2017913.html"  target="_blank">このページ</a>で原因と思われる記述を発見しました。</p>
<p><strong>「タイムスタンプに含まれる日本語文字列の処理の問題」</strong></p>
<p>ftpコマンドで接続して確認すると、ファイルの更新日付が確かに日本語で返ってきています。これなら in.ftpd のロケールを変えてあげれば問題は解決しそうです。</p>
<p>また、Googleに聞いてみると<a href="http://www.kichise.com/modules/pico/content0064.html"  target="_blank">このページ</a>に回答がそのまま書いてありました。</p>
<p>SMF なので svccfg を使うのかと思ったら、in.ftpd は inetd に管理されているので、inetadmというコマンドを使うんですね。初めて知った。</p>
<p>以下のコマンドで、FFFTPでも正常にファイル一覧が表示されるようになりました。</p>
<pre class="bq">
$ pfexec inetadm -m ftp inherit_env=FALSE
$ pfexec svcadm restart ftp
</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluegold.me/2010/02/ffftp-cannot-list-files-with-opensolaris-ftpd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mercurial で削除してしまったファイルを元に戻す</title>
		<link>http://blog.bluegold.me/2010/02/revert-missing-file-with-mercurial/</link>
		<comments>http://blog.bluegold.me/2010/02/revert-missing-file-with-mercurial/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 17:43:10 +0000</pubDate>
		<dc:creator>bg</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[メモ]]></category>

		<guid isPermaLink="false">http://blog.bluegold.me/?p=348</guid>
		<description><![CDATA[Mercurial で誤って削除してしまったファイルを元に戻す方法を説明します。]]></description>
			<content:encoded><![CDATA[<div>
<p>3ヶ月ほど前に、10年以上使い続けたCVSからMercurialにソース管理を移行しました。（Subversion は手になじまなかった。）</p>
<p>移行して不便に感じるのは<a href="http://www.viewvc.org/">ViewVC</a>が使えなくなった事くらいで、普段はあまり違いは感じていませんが、１つだけ直感的にやり方が分からなくて困る事があります。</p>
<p>ワーキングディレクトリで作業中に誤って必要なファイルを削除してしまった場合、例えば</p>
<pre class="bq">
$ ls -l
total 8
-rw-r--r--  1 user  staff  1345 Jan 16 22:33 Makefile
drwxr-xr-x  5 user  staff   170 Jan 16 22:45 help/
drwxr-xr-x  5 user  staff   170 Jan 16 22:33 tutorial/
$ rm Makefile
</pre>
<p>としてしまった場合、必要なファイルが存在しない事は hg status コマンドで調べる事ができます。</p>
<pre class="bq">
$ hg status
! Makefile
</pre>
</p>
<p>CVS(やSubversion)では、誤って削除したファイルは<strong>cvs update(svn up)</strong>で元に戻すことができますが、Mercurial ではそうはいきません。</p>
<p><span id="more-348"></span></p>
<p><pre class="bq">
$ hg update
ファイル状態: 更新数 0、マージ数 0、削除数 0、衝突未解決数 0
$ ls -l
total 0
drwxr-xr-x  5 user  staff  170 Jan 16 22:45 help/
drwxr-xr-x  5 user  staff  170 Jan 16 22:33 tutorial/
</pre>
<p>このように削除されたファイルはそのままです。
</p>
<p>Mercurial では update コマンドはワーキングディレクトリのリビジョンを変更するコマンドなので、この動きで正しいらしいのですが、CVS等から乗り換えてくるとちょっとビックリします。</p>
<p>このような場合は<strong>hg revert</strong>を使うのが正しいらしいです。</p>
<pre class="bq">
$ hg revert Makefile
$ ls -l
total 8
-rw-r--r--  1 user  staff  1345 Feb  2 02:41 Makefile
drwxr-xr-x  5 user  staff   170 Jan 16 22:45 help/
drwxr-xr-x  5 user  staff   170 Jan 16 22:33 tutorial/
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluegold.me/2010/02/revert-missing-file-with-mercurial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>zfsとタイムスライダーでハマった事</title>
		<link>http://blog.bluegold.me/2009/09/zfs-cannot-delete-file-on-no-space-left-on-device/</link>
		<comments>http://blog.bluegold.me/2009/09/zfs-cannot-delete-file-on-no-space-left-on-device/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 10:09:41 +0000</pubDate>
		<dc:creator>bg</dc:creator>
				<category><![CDATA[OpenSolaris]]></category>
		<category><![CDATA[opensolaris]]></category>
		<category><![CDATA[snapshot]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[zfs]]></category>

		<guid isPermaLink="false">http://blog.bluegold.me/?p=305</guid>
		<description><![CDATA[OpenSolaris の新機能「タイムスライダー」は便利な自動スナップショット機能ですが、ディスクの残り容量に気をつけていないとトラブルが起こってしまいます。]]></description>
			<content:encoded><![CDATA[<div>
<p>今回の秋の連休は有休も使って9連休にしていました。<br />
休み明けのボケた頭では仕事にならないので、午前中は開発用サーバたちのパッケージのアップデートをしていたところ、その中の１つにログインできませんでした。</p>
<p>そのホストは OpenSolaris 2009.06 の中に立てた Linux Branded Zone（BrandZ と書いた方がいいのかな）にインストールした CentOS3 でした。Solaris の Zone なので、ホストOS の方からは自由に Linux のファイルシステムに入っていけます。中のファイルを調べたところ、ログファイルの１つが46GB以上に肥大化してしまってディスクの残り容量が無くなってしまっているのが原因のようでした。</p>
<p>これなら、巨大化したログファイルを削除すれば問題解決だな、と軽い気持ちで<strong>rm ログファイル </strong>を実行したところ、意外な結果が戻ってきました。
</p>
<pre class="bq">
cannot delete file: no space left on device.
</pre>
<p>ディスクに空き領域が無いからファイルを消したいのに、空き領域が無いからファイルを消せないと言われても。。。</p>
<p><span id="more-305"></span></p>
<p>ファイルシステムが壊れているのかと zpool scrub を実行してもエラーは無し。</p>
<p><a href="http://www.google.com/search?q=cannot+delete+%22no+space+left+on+device%22+zfs">Google 先生に質問</a>してみたところ、zfs の既知のバグのようでした。曰く、ディスクの残り容量が無くなるとスナップショットが存在するファイルは削除できない。スナップショットの無いファイルを消して空き領域を作るか、スナップショットを削除すればよいようです。
</p>
<p>が、zfs は使っているもののスナップショットなんて取ったことはありません。<br />
不思議に思い <strong>zfs list -t snapshot</strong>を実行したところ、以下のように大量のスナップショットが存在していました。</p>
<pre class="bq">
rpool/ROOT/OpenSolaris-200906-090928@2009-07-10-00:41:02                      17.4M      -  2.85G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-10-17:54     39.5K      -  6.93G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:weekly-2009-07-10-17:54      40K      -  6.93G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:monthly-2009-07-10-17:54   1.11M      -  6.93G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-11-00:00     3.67M      -  6.94G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-12-00:00     2.86M      -  7.14G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-13-00:00     5.29M      -  7.14G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-14-00:00     21.1M      -  7.26G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:weekly-2009-07-15-00:00    1.29M      -  7.26G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-16-00:00      528K      -  7.26G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-17-00:00     3.73M      -  7.26G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-18-00:00     1.67M      -  7.35G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-19-00:00     1.05M      -  7.35G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-20-00:00     1.08M      -  7.35G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-21-00:00     1.22M      -  7.35G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:weekly-2009-07-22-00:00    1.35M      -  7.35G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-23-00:00     1.35M      -  7.35G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-24-00:00     5.91M      -  7.40G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-25-00:00     5.93M      -  7.40G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-26-00:00     5.87M      -  7.40G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-27-00:00     6.60M      -  7.40G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:daily-2009-07-28-00:00     6.42M      -  7.40G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:hourly-2009-07-28-11:00    1.73M      -  7.40G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:hourly-2009-07-28-12:00    1.71M      -  7.40G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:hourly-2009-07-28-13:00    1.93M      -  7.40G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:hourly-2009-07-28-14:00    1.88M      -  7.40G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:hourly-2009-07-28-15:00    1.79M      -  7.40G  -
rpool/ROOT/OpenSolaris-200906-090928@zfs-auto-snap:hourly-2009-07-28-16:00    1.26M      -  7.40G  -
...
</pre>
<p>犯人（？）は zfs の自動スナップショット機能でした。たしかにインストール直後に試しにタイムスライダーを有効にしたことがありましたが、こんな事になるとは。
</p>
<p>大量のスナップショットを削除するようにシェルスクリプトを作成して問題は解決しました。ただ、ググっている時に「rpool の容量がなくなるとリブートもできなくなる」のような話もあったので、タイムスライダー（自動スナップショット）はちょっと恐くて使えないなぁ。
</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluegold.me/2009/09/zfs-cannot-delete-file-on-no-space-left-on-device/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
