ホームHTMLに役立つヒントADSLでMACサーバ・実験室バックアップファイル(.tar.gz)生成方法

バックアップファイル(.tar.gz)生成方法

 自宅サーバにアップしたファイルのうち、静的なファイル(.htmlとか)は手元にオリジナルがあるので、サーバが飛んでも大丈夫。でも、掲示板のデータなどはサーバ上でデータが生成されるわけで、さて、このデータのバックアップをどうしようかと。

 プロバイダやOS XなどのUNIXサーバなら、tar.gz圧縮するシェルスクリプトを書いて、cronで定期実行させればいいでしょう。が、うちのような低速サーバ、しかもシェルがない(旧Classic Mac OSにはシェルはないのだ)場合はどうすべぇ。

 というわけで、1.Macperlだけで指定したディレクトリを.tar.gzファイルに圧縮するスクリプトの作り方と、2.それを定期的に実行させる方法について解説します。

●targzスクリプトを作る ▲ページトップ

 動作環境は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)生成方法