• 締切済み

下記を実現したプログラムを教えていただきたく。

サーバーAからサーバーBの某ディレクトリ(ここでは/C/)にあるファイル(.tar)を30分間隔で監視する。 /C/には1日毎に過去に出たものとは違う(過去に出たファイル名とは重複はない)名前の2個の.tarファイルが置かれます。 これらのファイルは3日経過すると自動で削除される仕組みになっております。 例: aaa.tar (1/5に置かれた) bbb.tar (1/5に置かれた) ccc.tar (1/6に置かれた) ddd.tar (1/6に置かれた) eee.tar (1/7に置かれた) fff.tar (1/7に置かれた) 上記状態から1日経過した1/8は ccc.tar ddd.tar eee.tar fff.tar ggg.tar (1/8に置かれた) hhh.tar (1/8に置かれた) という状態になります。 /c/から最新の.tarをゲットするプログラムをperlで具体的に教えて(記述)いただけますでしょうか。 既にゲット済みであるものしかない場合は何もしません。 なお、プログラムはサーバーAに常時置かれているものとし、crontabで10分毎に実行されるているものとします。サーバーBにはプログラムは置きません。 perlとありますが、linux及びunixコマンドが含まれていても問題ありません。 ご助言の程、お願いします。

みんなの回答

回答No.1

普通にrsyncすれば良いのではないでしょうか? ログを取ったりする必要もなく、crontabにコマンドを1行書くだけで実現できます。 新しいファイルがあれば取ってくるし、すでに取得済みのファイルしか無ければ何もしません。 deleteオプションを付ければサーバB上で消されたファイルがあればサーバAでも消してくれます。 もちろんdeleteオプションを付けなければサーバAには新しいファイルがどんどん溜まります。

関連するQ&A