ホーム > HTMLに役立つヒント
> ADSLでMACサーバ・実験室 > バックアップファイル(.tar.gz)生成方法
自宅サーバにアップしたファイルのうち、静的なファイル(.htmlとか)は手元にオリジナルがあるので、サーバが飛んでも大丈夫。でも、掲示板のデータなどはサーバ上でデータが生成されるわけで、さて、このデータのバックアップをどうしようかと。
プロバイダやOS XなどのUNIXサーバなら、tar.gz圧縮するシェルスクリプトを書いて、cronで定期実行させればいいでしょう。が、うちのような低速サーバ、しかもシェルがない(旧Classic Mac OSにはシェルはないのだ)場合はどうすべぇ。
というわけで、1.Macperlだけで指定したディレクトリを.tar.gzファイルに圧縮するスクリプトの作り方と、2.それを定期的に実行させる方法について解説します。
動作環境はMacperl 5.6.1r2です。実は、Macperl 5.6.1r2には、tar.gz圧縮するドロップレットが付属しているんですね。これを素材にして、改造します。
えーと、改造箇所を示すつもりだったんですけど、面倒なので改造版を示しておきます(^_^; 改造箇所は分かるようになっています。スクリプトはSJIS/CRで保存して下さい。
tarzip.pl021.txt 2006/10/2
すでに同名の.tar.gzファイルがあった場合、圧縮できないということが判明。そこで、圧縮の前に同名の.tar.gzがあったら削除するように変更したバージョン。
複数のディレクトリを指定できます。次の部分に「,」区切りで処理したいディレクトリを指定します。
$targetlist = "■■";
tarzip.pl02.txt 2006/9/29
こちらは複数のディレクトリを指定できます。次の部分に「,」区切りで処理したいディレクトリを指定します。
$targetlist = "■■";
tarzip.pl01.txt 2006/9/28版
開くと分かりますが、55行目で圧縮したいディレクトリを指定するようになっています。次の部分です。ここを書き換えて下さい。
$target = "■■";
できあがったら、それをMacperlのdlopletとして保存しなおします。
あとは簡単。cron系アプリケーションで、このスクリプトを定期的に実行するように登録するだけです。これでtar.gz圧縮されたファイルが自動的に定期生成されますので、それを手許のマシンにコピーしてくるだけです。
データ量が大きかったり、サーバマシンが遅かったりすると、それなりに時間がかかります。サーバが暇な時間帯(午前4時から6時くらい)に実行させるといいでしょう。
ホーム > HTMLに役立つヒント
> ADSLでMACサーバ・実験室 > バックアップファイル(.tar.gz)生成方法