サーバーからローカルコンピュータにファイルを自動的に同期します。

サーバーからローカルコンピュータにファイルを自動的に同期します。

現在、私はcrontabバックアップ方法で毎週金曜日の午前3時に私のコンピュータでタスクを実行しています。これは、rsyncサーバーから外部ハードドライブにファイルを同期するコマンドを実行するbashスクリプトを実行します。このフラグは、rsyncコマンドからrsyncなどの--include-fromファイルのリストを取得するために使用されます。*.cpp *.h

残念ながら、私のハードドライブの空き容量が不足しているので、同じストレージスペースを持つ別のドライブに交換したいと思います。そのままrsyncを続けると、2番目のドライブが最初のドライブと同じでいっぱいになるため、何も得られません。

理想的には、外付けドライブを交換した日付よりも最新のファイルだけをrsyncしたいと思います--include-from(たとえば、今日のドライブを交換してから、インクルードファイルリストのファイルをrsyncしたいと思います。そして2015年3月27日更新)。これは最初のドライブの連続になります。

オンラインで見つけることができるすべては、find最初に日付よりも最新のファイルのリストを取得し、そのリストをrsyncfind仕える人?より良いオプションはありますか?rsyncファイルが最後に変更された日付を確認するフラグですか?

ありがとう

ベストアンサー1

古いディスクを使用して最後のバックアップ後にタイムスタンプを作成し、そのタイムスタンプの後のファイルをバックアップします。findフラグを使用して--newerタイムスタンプより新しいファイルを一覧表示し、フラグを使用してコピーするファイルの--file-fromリストrsyncを指定します。

それだけです:

ステップ1:新しいドライブに変更する前に:touch /someplace/timestamp.txt

ステップ2:新しいディスクと交換します。

ステップ3:次のタスクを実行するようにcronjobスクリプトを変更します。

find BLAH BLAH BLAH -newer /someplace/timestamp.txt -type f -print0 >/tmp/list rsync -avP --inplace --file-from=/tmp/list --from0 desthost:/dest/place

/someplace/timestamp.txt ファイルを変更したり、触ったり、変更したりしないでください。

おすすめ記事