電子書籍の厳選無料作品が豊富!

サーバー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コマンドが含まれていても問題ありません。

ご助言の程、お願いします。

A 回答 (1件)

普通にrsyncすれば良いのではないでしょうか?


ログを取ったりする必要もなく、crontabにコマンドを1行書くだけで実現できます。

新しいファイルがあれば取ってくるし、すでに取得済みのファイルしか無ければ何もしません。
deleteオプションを付ければサーバB上で消されたファイルがあればサーバAでも消してくれます。
もちろんdeleteオプションを付けなければサーバAには新しいファイルがどんどん溜まります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!