cronメモ - RSSを自動生成してみる

Amazon Web Serviceを弄りがてら、ランキングのRSSなんてあるといいかもしれんなっていうか欲しくなった。というわけで自動生成に挑戦してみた。

まずはPHPでAWSを利用してランキングのRSSを生成できるようにする。ここまではOK。あとはこれを一定期間毎に動かすわけだが・・・

XREAのアカウントを所持しているので、それを利用することにした。XREAの仕様によると、シェルスクリプトのディレクトリは「/bin/sh」、PHPのディレクトリは「/usr/local/bin/php」なので、

#!/bin/sh
/usr/local/bin/php -f
./virtual/userID/public_html/gen.php
exit

これで動く・・・ことは動くが、PHPスクリプト内ではカレントディレクトリが「/virtual/userID/public_html/」になってしまっているので、includeなりfopenなりでファイルを呼び出す場合は注意が必要になる。頻繁に呼び出すなら

chdir( "/virtual/userID/public_html/" );

このようにカレントディレクトリを設定するのがいいだろう。

これで一定時間毎にRSSの自動生成が行われてめでたしめでたし・・・ではなく、XREAの場合はシェルスクリプトの入出力がメールで送られてしまうので、「2>&1 > /dev/null」を付け足して、一般入出力を行わないようにする。というわけで完成系は以下のようになる。

#!/bin/sh
cd /virtual/userID/public_html/
/usr/local/bin/php -f ./gen.php 2>&1 > /dev/null
exit

cdってのはカレントディレクトリ設定のことね。これでPHP動作時にエラーがあった場合のみ入出力が行われる=メールで知らせてくれるようになった。これで実際に生成しているRSSが以下の二つ。

というわけで結構お手軽にスクリプトの自動実行なんてのをしてみたが、これを利用してデータベースやblogのバックアップなんてのをしてみるのもいいかもしれない。ってゆーかそーゆーことに使うべきだな。・・・XREAはデフォルトでDBのバックアップしてくれるけど。