質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Q&A

解決済

2回答

2620閲覧

rsyncコマンドで送信したファイルの操作方法について

shimizu

総合スコア28

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

0グッド

0クリップ

投稿2014/11/02 02:29

rsyncで送信したファイルのファイル名を変更することは可能でしょうか?

【詳細】
サーバAとサーバBがあります
サーバAには外部からフォルダCにファイルがアップロードされます
サーバAからサーバBにフォルダC内のファイルを定期的にrsyncで送信しています
サーバA上にあるrsyncで送信されたファイルを、アップロードされた日から30日後に削除されるようにしたいです

ファイルをアップロード日から30日後に削除するプログラムを組むことも可能ですが、rsyncされたかどうかわからず、微妙だと考えております
今のところ、rsync結果を標準出力させ、それを元にファイル名を変更させる方法しか浮かんでおらず、何かいい方法があればと思い質問いたしました
いい方法やヒントなどありましたら、よろしくお願いいたします
※--remove-source-files は利用せず、サーバAにしばらくファイルを置いておきたいです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

定期的にrsyncをしているにもかかわらず、rsyncされたかどうかわからないというのは、どういう意味でしょうか?
その定期的の周期が30日より小さければ、単純に30日以上古いファイルの削除でいいと思うのですが。rsync周期がそれより長いとか言うことですか?

rsyncの結果と連動できないと言うことであれば、

lang

1rsync ~~ && find ~ -type f -mtime +30 | xargs rm

のように続けて処理すれば確実だと思います。

投稿2014/11/02 10:27

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shimizu

2014/11/02 17:39

回答ありがとうございます。周期は1日ですので、その点は問題ありません。 「 rsync → rm 」だと rsyncで送ることができなかったファイルが存在し、rsync からエラーが出力されなかった場合、気が付かずにそのファイルは削除されてしまいます。(じゃあrsync利用するなよ、ということになると思いますが、それはなしで考えてもらえると助かります。。) より安全に削除するために「 rsync → rsyncしたファイルをリネーム → リネームしたものを削除 」というように、一度フラグを立ててから削除したく、rsyncされたかどうか判断する方法ありますか?ということが質問の意図となります。 わかりにくく申し訳ありません。
otn

2014/11/03 05:06

rsycが途中で失敗したにもかかわらず正常終了することがあるということですか? 「rsync バグ 終了コード」でググってみましたが、情報見つからずです。 >rsyncされたかどうか判断する方法ありますか? ファイルに対して、rsync成功を判断するのは無理です。 rsync以外がファイルを参照する事がないのであれば、更新タイムと参照タイムを比較して不一致ならrsync対象となったことがわかりますが、そのファイルの処理中にエラーが起こった場合にも参照タイムは更新されるので、無理ですね。 ファイル単位で管理するならログを見るしか無いと思います。 rsyncの挙動に不審な点を見つけたのであれば、情況を確認してバグレポートを書いてみるのが建設的です。
shimizu

2014/11/03 05:41

今までrsyncを利用していますが、バグを引いたことはありません。 万が一バグを引いてしまった時のために、なるべく安全に削除したく質問しました。 今回の質問でファイル操作は難しそうなことがわかったため、rsyncが正常終了することを監視するようにしようと思います。 ご回答ありがとうございました。
otn

2014/11/03 07:48

そういうことであれば、ディスク全体(orシステム全体)のバックアップで備えるのが普通だと思います。 個々の基本コマンドのバグの虞に個々に備えをすることは現実的ではありません。
guest

0

...ファイルをアップロード日から30日後に削除するプログラムを組むことも可能ですが、rsync されたかどうかわからず、微妙だと考えております...

この事態を考慮するために次のようにしては如何でしょう?(完全な対処にはなりませんが...)

  1. rsync で A サーバー => B サーバーにファイルを copy する。(A で削除されたファイルを B で削除しないように設定にする。 --delete は指定しない。)
    rsync でエラーが起きたら、管理者に確実にそれが伝わるようにする。
    (cron で rsync を実行させれば、エラーが起こったらメール送信されるようにできるはず)
  2. A サーバーでは cron をつかって 修正時間が 30日より前のファイルを削除するようにする。

参考情報:

 > rsync (日本語) の説明

 > zsh で find を使わずに簡単にファイルを絞り込む

...
タイムスタンプが1日以上古いファイルだけ削除する
こういうときは普通は find コマンドでファイルを探すんだけど、zsh の「ファイル修飾子」を使うと1行で簡単にできるようになるので紹介する。
...

修正時間が現在から10秒より前(過去)であるもの

% echo *(ms+10)
また、m の代わりに a を使うと「修正時刻」ではなく「アクセス時刻」、c を使うと「ステータス変更時刻」という意味になる。
...

投稿2014/11/02 08:42

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shimizu

2014/11/02 17:13

回答ありがとうございます。参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問