Linux導入、ハードウェア構成、最新動向
Google

最新情報、ニュース、全記事セキュリティー情報メーリングリスト、MLlinux徒然コラムサイトマップ問い合わせ


▼ Linux徒然コラム

第五回「スクリプトを許可しないホストにファイルを定時転送する」




このサイトは1998年から運営している。見ての通りLinuxサーバー関連の文章に触れているにもかかわらず実は普通のプロバイダーの無料ホームページスペースを活用している。当時はページを作成する人も限られていた上に、自宅に専用回線をひいてサーバーを運営していくことは金銭的に一般庶民が手を出せるものではなかった。しかし、現在は本屋をのぞいても自宅サーバー構築の棚があるくらい一般化しつつある。

筆者にとって、このURLは様々な検索サイトのディレクトリやインデックスに登録されているアドレスであり、そう簡単に引越ししようと思うものではなかった。それは何より、微々たる期間であっても閲覧者の信頼を裏切る、クリックしたときに「404 not found」を表示させてしまうのが何ともつまらないものに思えたからである。また、もうひとつの理由として、動的コンテンツを受け付けないホスト(サーバー)のページ表示速度と安定した動作は自宅で非力で不安定なサーバーを運営していくよりも閲覧者のニーズにあっているのではないかと思ったからである。

上記の理由により、スクリプトを許可しないホストでのページ運営を続けていくことにしたものの、いわゆる日々日常の変化に柔軟にコンテンツを修正していくだけの時間と、変化の乏しさを克服するだけの情報量を得ることができないと思いはじめてきた。こうなるとどうしても動的コンテンツがほしくなる。そこで思いたったのが常時運用しているライブカメラのための玄箱サーバーから定期的にコンテツを生成させてFTPで転送するという方法である。

定時転送に対応したftpソフトを利用する方法もあるが、ライブカメラの定時撮影とRSSの定期取得→htmlページ生成の両方に活用しているperlとcronだけを利用して構築することにした。

まず用意しておかなければならないのはPerlとCronが使える環境。そして「Net::FTP」というPerlモジュールである。いずれもapt-getやcpanから得られるはずである。

上記の環境が整ったらあとは下記のスクリプトの転送先やローカルファイルの場所を書き換えた上で、ftp.pl(お好きな名前)という名前で任意の場所に保存してCronで実行してやるだけでよい。
ちなみにCronには「perl /home/uheuhe/public_html/ftp.pl」などと指定して実行させてやるだけでよい。


use Net::FTP;

my $host = '○○○.co.jp';# 接続先
my $user = '○○○○'; # FTPのユーザ名
my $pass = '○○○○'; # FTPのパスワード
my $local_file1 = '/home/uheuhe/public_html/hogehoge.jpg';# ローカルファイル
my $remote_file1 = '/aheahe/hogehoge.jpg';# リモートのファイル
my $ftp = Net::FTP->new($host) or die "can not connection: $@";
$ftp->login($user, $pass) or die $ftp->message;
$ftp->binary;
$ftp->put($local_file1, $remote_file1) or warn $ftp->message;
$ftp->quit;

2006年06月16日

次回は7月中を予定しております。
タイトルは「玄箱でライブカメラとRSS配信(仮)」です。