2004-11-20
_ 名古屋ドーム
仕事関係で土曜はナゴヤドームに行ってきました.仕事関係といってもボランティアなので休日出勤とかにはなりませんが….会社対抗のソフトボール大会のスタッフとして参加してきたのですが,とりあえず名古屋ドームを見て,関係者通路を通って,野球中継でうつるベンチを見られたという点においては,それなりにいい経験になったかも.野球見ないからなかなかドームに来ることもないだろうし.
2004-11-16
_ Linuxでファイルからisoイメージを作成する
仕事で数百MBもあるファイルをCD-Rに焼く必要がありました.元のファイルとなるのはgzip圧縮されなおかつcpioでアーカイブされています.まぁ,もともとLinux用に固められたファイルなので当たり前なのですが….で,通常,Windows上ではこのファイルを普通に扱うことが困難なので,Linux上にファイルを展開します.これらのファイルをCD-Rに焼く必要があるのですが,LinuxでCD-Rを焼ける環境がありません.なんとかして展開したファイルをWindows上に戻して焼く必要がありました.そんなわけで,Linux上のファイルをisoイメージにして,それをWindows上に落とせば,楽ではないかと考えました.
ここでcpioをという聞きなれないものがでてきたので調べてみたのですが,どうもtarコマンドでのアーカイブはサイズに上限があったみたいです.tarコマンドはTape Archival and Retrieval formatの略で,複数のファイルをまとめたアーカイブにするコマンドです.つまりテープの上限を超えるようなアーカイブが作成できないということです.そこでcpioコマンドを利用することになります.cpioはより大きなファイルシステムなどをアーカイブにして保存することが可能です.
さて,実際にこれらのファイルを展開してISOイメージにするまでの流れです.FTPでWindows上にあるhoge.cpio.gzをアップロードして,解凍・展開します.
$ gunzip hoge.cpio.gz $ cpio -idmv < hoge.cpio
展開されたディレクトリをまるごとisoイメージにするにはmkisofsコマンドを使用します.今回はRHEL環境で実施しました.まず,
$ rpm -q mkisofs mkisofs-2.01.0.a32-0.EL3.1
などと表示されることを確認します.なければインストールします.mkisofsコマンドは対象のディレクトリ以下のisoイメージを作成します.hogeディレクトリ以下全てをhoge.isoというイメージファイルを作成するには,
$ mkisofs -r -J -o hoge.iso hoge … Total translation table size: 0 Total rockridge attributes bytes: 446327 Totak directory bytes: 2113536 Path table size(bytes): 13494 Max brk space used 3dc000 205581 extents written (401MB)
-rはRockRidgeでLinuxでロングファイル名をサポートできて,uid,gidがrootになる.-JはJolietで,Windowsのロングファイル名をサポートできる.両方つけておけばLinux/Windowsの両方でCD-Rを利用することが可能になる.作成したISOイメージの確認は,
$ su - Passward: # mount -o loop hoge.iso /mnt/cdrom # ls -l /mnt/cdrom
これでうまく表示されていれば作成は問題ありません.あとはISOイメージをWindowsに落として焼くだけです.LinuxでCD-Rを焼ける環境にあれば,そのままこのISOイメージを焼いてしまえばはやいですけどね.
ちなみにここのサーバはDebianなのですが,今回はRed Hatでやってみました.Debianでもaptを使ってmkisofsを導入して同様のことができそうです.
2004-11-12
_ コメントspam来襲
本日未明,コメントspamをくらってしまいました.コメント内容はhttpから始まるURL群で計8件のコメントspamがありました.特徴として記載されているドメインがすべて,eu.comおよびme.ukだったことから,tDiaryのFilterに新たにこれらの文字列が含まれるとコメントを受け付けないことにしました.とりあえずは暫定的な対応としてこれでしばらく様子を見ることにします.以下のソースは<%= my '20041010','前回の対策' %>に追加したものです.
#
# SpamFilter
#
module TDiary
module Filter
class SpamFilter < Filter
def comment_filter( diary, comment )
ENV[’REQUEST_URI’] != ’/./’
/(\.eu\.com)|(\.me\.uk)/ !~ comment.body
end
end
end
end
このFilterを実装することによって,通常のコメントでもURLにeu.comやme.ukが含まれていると拒否されます.もしコメントされることがあるときはご注意ください.とはいっても,そんなによく使うドメインでもないので問題ないと思いますが….ちなみにtDiary 用 spam の IP をみんなで共有フィルタというものもあるみたいなので,これも加えたほうがいいかもしれない.でも,今回の来襲したIPアドレスはリストには含まれていないから,結局は防げなかったかもしれない.ともあれ後手後手にまわる対策になってしまって仕方ない.なんかいい方法はないものだろうか….