現在、私はcrontab
バックアップ方法で毎週金曜日の午前3時に私のコンピュータでタスクを実行しています。これは、rsync
サーバーから外部ハードドライブにファイルを同期するコマンドを実行するbashスクリプトを実行します。このフラグは、rsyncコマンドからrsyncなどの--include-from
ファイルのリストを取得するために使用されます。*.cpp *.h
残念ながら、私のハードドライブの空き容量が不足しているので、同じストレージスペースを持つ別のドライブに交換したいと思います。そのままrsyncを続けると、2番目のドライブが最初のドライブと同じでいっぱいになるため、何も得られません。
理想的には、外付けドライブを交換した日付よりも最新のファイルだけをrsyncしたいと思います--include-from
(たとえば、今日のドライブを交換してから、インクルードファイルリストのファイルをrsyncしたいと思います。そして2015年3月27日更新)。これは最初のドライブの連続になります。
オンラインで見つけることができるすべては、find
最初に日付よりも最新のファイルのリストを取得し、そのリストをrsync
。find
仕える人?より良いオプションはありますか?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 ファイルを変更したり、触ったり、変更したりしないでください。
答え2
おそらく、サーバーへのSSHアクセス権がありますか?だから
- どちらか:サーバーにローカルマシンへのSSHアクセスを許可してから、次のものを使用します。
ssh you@server 'find ... | xargs -0 -I {} rsync "{}" you@yourmachine:/media/dir'
- または、次のようにしてサーバーにファイルの
find
リストを作成します。
しかし、私はこれが気に入らないと言わなければなりません。フルファイルを回復するには、まだ2つのバックアップディスク(古いディスクと新しいディスク)が必要で、回復が複雑になる可能性があります。この戦略を改善するためのいくつかの方法を考えてみることができますが、あなたにとって最も簡単な方法は新しい戦略を得ることです。大きい同じサイズの新しいディスクの代わりにディスク。当然、追加費用はそれほど大きくないでしょうか?