うちのサーバはお遊びで make world したり再起動したりでコケてる時も多いのですが、長時間止まったままだと「ふっ、また止まってるよ。ブックマークから消してやるっ」とかになるかもしれないので、コケててもひとさまにあんまり迷惑をかけないようにする仕組みにしてみました。
変更はだいたいこんな感じ。RSSは今までPHPでその都度データベースから最新記事リストを取り出して作成していたのですが、よく考えたらそんなに頻繁に更新しないので(苦笑)、記事をPOSTしたときに静的XMLファイルを作成し、<link>ではそちらを記載することにしました。自宅サーバにおいては .xml と .php は同じですが、DTIへのアップロードは最大6時間のタイムラグがありますので、現在RSSを登録してある方は変更しない方が良いと思います。
で、自宅サーバ以外にコケてる時用に外部のレンタルサーバにも記事を置いてますので、コケてるっぽい時はそちらへの誘導用リンクを表示するようにしてみました。計画的にシステムダウンしている場合は直前の記事が見られるかもしれません。
ところで、DTIというところはまことに頑固でして、サーバーにファイルを置く手段が FTP しかありません。アイネットディーだと rsync が使えるので簡単で安全なのですけどね。昔はWindowsのフリーソフトで、最近は手打ちftpでぽちぽちアップロードしていたものの、自動化するのはどうやるんだろう? とか悩んだのですが、
#!/bin/shのようなのだけで簡単に差分アップロードできるようになりました。find ってルートディレクトリしか指定したことが無かったので超重いプログラムだと思っていたのですが、カレントディレクトリのファイルだけを対象にした場合ってとても軽かったのですな。ぜんぜん知りませんでした(^^)。
cd [HTMLとかXMLがある場所]
find *.html *.xml ... -newer hoge -exec ftp -u ftp://ログイン名:パスワード@FTPサーバ/public_html/ {} +
echo "fuga" >hoge
ホントはレンタルサーバの容量が十分大きくて PostgreSQL も使えるんだから、自宅サーバを公開する必要なんてぜんぜん無いのですけどね。完全に引越しするにはいろいろ面倒なことが多いので放置中なんです。