お引越し
定年間近。定年後は大学の奥村研究室のサーバを継続利用できるかどうか微妙だ。そこで,定年後の引越し先の整備を兼ねて,以前から借りていたさくらのレンタルサーバライトから,さくらのVPS(1G)に引っ越した。ドメインは以前から持っていたokumuralab.orgをそのまま使う。
さくらのVPSにはCentOS 7をインストールした。レンタルサーバライトからVPSへのokumuralab.orgドメイン移行が最初よくわからず,さくらの質問フォームで問い合わせたが,回答がいまいち。ふと気づいて,まずレンタルサーバライト側でokumuralab.orgを削除したら,VPS側で設定することができた。
あとは大学の研究室のサーバからの引越しである。これは急ぐ必要がないので,少しずつやればよい。
安いVPSのプランゆえ,リソースが限られているので,MySQLを使ったコンテンツはなるべく避けたい。特に,古いブログはDrupal 6で作ってあり,凍結してスタティックなページに移行したい。
サイトのコンテンツをそのままコピーするにはいつもwgetを使っている。
wget --mirror --no-parent --no-clobber --adjust-extension --convert-links --page-requisites http://...
のような感じでやればよい。ただ,Drupalの個別URLには拡張子が付かない。--adjust-extension
(wget 1.12から --html-extension
が改名)を付けるとURLに .html
が付き,今までのURLと変わってしまう。そこで,このオプションを外してアーカイブする。.html
が付かなくてもtext/htmlで送り出される。問題が起こるのは node?page=1
のようなファイルで,これをGETしようとすると ?
以下が無視されて node
ディレクトリのリスティングが送られてくる。これを避けるには node?page=1
へのリンクを node%3Fpage=1
へのリンクに書き換えればよい(ファイル名は ?
を含むままでよい)。
リンクやURLの書き換えは,次のようなRubyスクリプトで一度にできる:
ARGV.each do |file| buf = File.open(file, "r") do |f| f.read end buf.gsub!(/href="http:\/\/oku\.edu\.mie-u\.ac\.jp\//, 'href="/') buf.gsub!(/src="http:\/\/oku\.edu\.mie-u\.ac\.jp\//, 'src="/') buf.gsub!(/action="http:\/\/oku\.edu\.mie-u\.ac\.jp\//, 'action="/') buf.gsub!(/href="node\?/, 'href="node%3F') buf.gsub!(/href="index\.html"/, 'href="./"') buf.gsub!(/href="..\/index\.html"/, 'href="../"') File.open(file, "w") do |f| f.write(buf) end end
これ以外に .css
や .js
だけをコピーするにはrsyncが使える:
rsync -avm --include='*.css' -f 'hide,! */' src/ dest rsync -avm --include='*.js' -f 'hide,! */' src/ dest
あとは試行錯誤でやっているうちに,引越しができたようである。