CGI-BBS > CGI > Perl > CSVファイルのバックアップを取りたいのですが


カレッヂ
カレッヂ


質問者 銀杏  投稿日 10/10(水) 11:56:29
CGIプログラムをはじめて書いています。みなさま教えてください!!
登録データをCSVでためていくプログラムなのですが、書き換えを
するときに、バックアップの為に、CSVファイルを別名で保存して
コピーしたいのです。
rename("元のファイル名","新しいファイル名");
ではなくて、元のファイルも残しておきたいのです。

どなたか教えてください。行き詰まっていまーす。
回答者 しあわせのツボ  [削除]  投稿日 10/10(水) 13:14:55
様々な方法が考えられます。
○シェルコマンドでcp。
○File::Copyモジュールを使う。
○読んだデータを2ファイルに出力。
○読んでrenameして新規書き出し。
○毎回異なるファイル名にする。
○cronで定期的にバックアップさせる。
などなど。
バックアップは1世代でいいのか、書き換えるたびに残すのかによって適した方法は変わってきますし、そもそもファイルが頻繁に壊れるならそれを対策すべきですし…。
もう少し具体的な条件があれば答えやすいと思います。
質問者 銀杏  [削除]  投稿日 10/10(水) 13:56:23
早速ありがとうございます。

○読んだデータを2ファイルに出力。
→この方法で、思っていたことはできました。

perlのプログラム中で、シェルコマンドcpを使用することは
できますか?
cp("元のファイル名","新しいファイル名");
これでいいのでしょうか?

バックアップは、例えば4世代まで取る場合は、どうしたらよいですか?

是非教えてください。
回答者 しあわせのツボ  [削除]  投稿日 10/10(水) 14:13:43
system 'cp 元ファイル 新ファイル';
という書き方です。''内はシェルコマンドの書式になります。

4世代ですか…
○1つずつrenameで玉突きしていく。
○特定のフォルダに5つ以上ファイルがあったら、最も古いものを削除する。
○バックアップ履歴を保存しておき、それを見て5世代前を削除する。
など。
1世代か無限かなら簡単なのですが。
質問者 銀杏  [削除]  投稿日 10/10(水) 17:09:16
しあわせのツボさんへ
どうもありがとうございました。
早く教えてくださって、大変助かりました。
すごくお詳しい方なんですね。

又、困ったら助けてください。

このページは終了したので返信(回答)は書きこめません

Web裏技