devと展開ボックスをGCSバケットと同期させて、問題なく2年間近く保管するために、gsutil -m rsync -r
を使用しました。バケツには約85k個のオブジェクトがあります。gsutil rsyncがすべてのファイルを再ダウンロードするのはなぜですか?
最近まで、これは完全に機能しました:私たちは、15分ごとにデプロイメントボックス - > GCS rsyncを実行して、新しいアップロードされたリソースをすべてバックアップしておきたいときはいつでもGCS - >ローカルのdevデータ(OSX El Capitan上で実行中)を更新します。
しかし、GCS-> dev rsyncが膨らみ始め、ますます多くの画像がダウンロードされています。
当初私は「すばらしい、より多くのリソースをアップロードしています」と思っていましたが、今日まで85k画像全体をダウンロードしているように見えるまで、データよりも速く成長しています。
私は正しい場所にあり、コマンドが正しいこと、パスが正しいことなどを再確認しました。gsutil
の出力は、「コピー中...」のリームとスラムでスクロールしています。と "ダウンロード中..."というメッセージが表示され、私たちの100mbps接続をうまく利用すると、別の端末に行ってfind . -type f | wc -l
を10秒ごとに実行すると、わずか2または3の新しいファイルが1分で追加されていることがわかります。私はgsutilが今すぐダウンロードしていると言っているファイルの変更時刻を見ています。大部分は古いものですが、1年以上で多くは変更されていません。意味:それは数百のファイルのために、時間と帯域幅のトンを使用して、すべてのデータをダウンロードしています。
最近のOSX gsutil
のバージョンで何か変更されましたか?おそらくバグはありますか?どのように私はこのことを追跡しようとするだろうか?それとも報告しますか? gsutil-discuss
とgs-discussion
のニュースグループがアーカイブされており、gce-discussion
のトークはすべてGCEインスタンスのgsutil
を使用しています。
ありがとうございます!
gsutil 4.20(2016-07-20)では、sync'ingの変更検出アルゴリズムが、ファイルサイズのみを使用することから、ローカルファイルのサイズとファイル変更時間を比較するように変更されました。デベロッパーボックスのファイル変更時間と展開ボックスのファイル変更時間は異なりますか?もしそうなら、それはこの問題を説明するかもしれない。 –
ねえ、助けてくれてありがとうトラビス!私はそれがほぼ確実に答えだと思う。私たちは227日前に新しい展開ボックスのインスタンスを作成し、すべてのファイルをrsyncしたところ、 'find。初期の同期がGCSの元のタイムスタンプではなくrsyncされた瞬間としてすべての変更時刻を書き込んだことを示しています。私たちがこれについて何かできることはありますか?それ以外に、devからのたくさんのものを削除し、それらをre-rsyncしますか?とにかく、 'gsutil'は何をすべきでしょうか? (これを答えに入れたいのであれば、私はそれを受け入れてそこにコメントとしてフォローアップを依頼することができます:-)) –
問題は、内容が変更されていないファイルがdev'boxにsync'edされていることです? deploy - > GCSからrsyncを実行するときに、展開ボックスのファイルのmtimeを変更していますか?私は、GCS - > devからの同期は、mtimesが違う場合は一度ファイルをコピーすることを期待しますが、その後の同期は増分になります。しかし、異なるファイルmtimesを持つ新しい展開ボックスを作成してアップロードした場合、すべてのファイルが変更されたために表示され、別の「フル同期」がdevボックスまで発生します。 –