リモートディレクトリに次のファイルがあります。今日のファイルと以前の実行失敗をローカルディレクトリにコピーするだけです。
例:リモートから:
aa.txt
aa-18-04-2017.txt
aa-17-04-2017.txt
aa.txt
ローカルでファイルを新しいディレクトリに同期する必要があります。
最後の実行が失敗した場合は、両方のファイル(aa.txt
およびaa-18-04-2017.txt
)を再同期する必要があります。
誰でもこの問題を解決するのに役立ちますか?
現在、RSYNCはすべてのファイルをローカルディレクトリにコピーしており、毎日の保存に問題があります。
ベストアンサー1
rsync
非常に包括的なマニュアルページがあり、これを行う方法のいくつかの例もあります。あなたが望むものについての私の意見は次のとおりです。
rsync -auv remotemachine:/path/to/srcdir/ /path/to/dest_dir
いくつかの仮定をしました。設定が異なり、さらにヘルプが必要な場合は、追加情報で質問を更新してください。
仮定:
Remotemachineにはrsyncサーバーが設定されています。 (ssh接続は可能ですが構文が少し異なります)
- アーカイブモードはいくつかのオプションを自動的に設定しますが、これは通常バックアップに必要なものです。
-u 更新モード、存在しない、サイズが異なる、または最後の変更時刻が異なるファイルのみをコピーします (ソースファイルはすでに持っているファイルより最新です)。
末尾のスラッシュは、ターゲットの追加レベルを避けるsrc_dir
ためにファイルをsrcdir /にコピーすることを意味します。dest_dir
-v何が起こっているのかを見るための詳細モードです。
これをテストするには、-n
コピーをスキップしますが、実行するアクションを示すオプションをさらに使用します。
ただし、マニュアルページを読んでテストすることをお勧めしますman rsync
。
[編集] 以下の@Devの最初のコメントに従います。
中間ステップがある場合、対応するdest_dirは実際にはオフラインアーカイブのための一時的なローカルストレージの場所です。その後、正常にアーカイブされたファイルのリストを作成し、この--exclude-from-file=/some/where/exclude_list.txt
オプションを使用できます。