転送ファイル

作成日:2007-03-04
最終更新日:

1. 何を転送するか

私のホームページの Namazu 検索では、 かつて、自分のローカルのコンピュータで Namazu のインデックスファイルを作り、 それから必要な NMZ.* ファイルをリモートコンピュータへ転送していた。 以下はそのときの名残である。

では、どの NMZ.* ファイルを転送すべきだろうか。 インデックスファイルはすべて必要なのだから、転送すべきなのか。 それとも、必要なファイルを決めて、転送すべきか。

最初は必要なファイルを選ぼうとした。 しかし、ほとんど全てが必要であることに気づいた。 いらないものだけを省いて、あとは送ることにした。

$ruby -n -e 'print if $_.length > 70' NMZ.w

2. 実際のスクリプト

実際に転送ファイルを送るスクリプトを示す。言語は Ruby である。

#!/usr/bin/ruby
require 'net/ftp'

Dir.chdir('/homedirectory/localcomputerindexdirectory')
d = Dir.new(".")

ftp = Net::FTP.new(hostname, userid, password)
ftp.chdir('remotecomputerindexdirectory')
ftp.passive = true
d.each {|x|
	next if /^\.$/ =~ x
	next if /^\.\.$/ =~ x
	next if /^NMZ/ !~ x
	next if /log$/ =~ x
	next if /~$/ =~ x
	next if /BAK/ =~ x
	next if /tmp/ =~ x
	puts ("Got "+ x) 
	ftp.putbinaryfile(x, x, 1024)
}
ftp.close

ループの部分で next if の行が、 不適当なファイルを選別し、送らないようにしている箇所である。

まりんきょ学問所全文検索システム Namazu > 転送ファイル


MARUYAMA Satosi