Rsyncを使用して外部ドライブにバックアップする


17

私は家のコンピューターをバックアップするために外付けハードドライブを購入しています(最終的に!!)。rsyncを使用したいと思っています。私が望むものを正確に実行する(または実行するように見える)例を見てきました。このようなもの:

rsync -aE --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

しかし、rsyncのドキュメントや例などを見ると、事態はそれよりもずっと複雑に見え始めました。ネットワーキングとデーモンと専門用語、おっと!

コンピューターからファイアワイヤー接続された外部ドライブに再同期している限り、そのようなものは必要ないと仮定しています。私はそれを仮定するのは間違っていますか?物事は本当にその無害なコマンドよりも複雑になるでしょうか?


回答:


10

Rsyncはローカルドライブ全体で正常に機能します。ただし、ローカルパスを検出すると、自動的に--whole-fileモードに移行します。このモードでは、差分はコピーされず、ソースファイルが宛先ファイルにコピーされるだけです。ただし、Rsyncはまったく変更されていないファイルを無視します。ソースとデスティネーション間の帯域幅が大きい場合(2つのローカルディスクなど)、両方のファイルを読み取り、変更されたビットのみをコピーするよりもはるかに高速です。


2
s /ただし/幸いなことに/ファイルがローカルの場合、両方を読み取り、両方の部分を使用して新しいものを書き込むためにすべての差分マジックを行う(それらを再度読み取る)ことは、ソースを読み取り、宛先を書き込むだけではありません。
ハビエル

私は私の答えでそれに入るべきかどうか知りませんでした。今すぐ追加します。
kbyrd 09年

31

「glop」、「trunc」、「v」として覚えやすい次のフラグを付けてrsyncを使用します。

rsync -gloptrunc $srcdir $dstdir

簡単なガイド:

  • g-グループ所有権情報を保持
  • l-シンボリックリンクをシンボリックリンクとしてコピーする
  • o-所有者情報を保持
  • p-許可を保持する
  • t-タイムスタンプを保持します
  • r-ディレクトリを再帰処理する
  • u-更新、新しいファイルはスキップ
  • [n]-いいえ、これをしてはいけません、代わりにドライランを行います
  • c-チェックサム、可能な場合はファイルブロックのチェックサムを試みます(*)
    注:ローカルファイルシステムでは、これは上書きされ、代わりにファイル全体がコピーされます。
  • v-詳細

私は常に上記を実行してそれが機能することを確認し、結果に満足したら「n」フラグを削除します。

上記の組み合わせの主な機能:

  • 2つ(またはそれ以上)のサーバー間で両方の方向に実行するため、両方の方向に同期します。その時点でマスターであると感じる方を更新します。
  • それはどちらかと、マスターにすることができます重要なことは、戻ってくる、他の何かを削除したい場合、あなたは必ずそれが本当になくなってすることの両方にそれを削除しなければならないという警告。

これを使用して、2台のマシンの同期を維持するか、サブディレクトリの同期を維持します(USBドライブへのバックアップなど)。

先に述べた他の投稿の1つとして、ローカルドライブを扱っている場合、「チェックサム」は実際に強制的にオフにされる場合があります。

まれに、リモートマシン全体でのログインアカウントの変更、ポートの変更、リモートホスト上の「rsync」の場所の指定まで、追加のパラメーターを追加する必要がありましたが、これらは直接あなたに適用できません質問。


3
rsyncの-aフラグは上記のすべてを行いませんか?
ロリー

2
私はそれらが何をするのか確かにわからないときに「メタ」フラグを使用することの大ファンではありません。rsyncのマナページは、「-a」が実際に私のボックスの-rlptgoDであることを示しています。これは「u」と「v」をスキップしますが、「D」を含みます。それらのうち、私にとっては、「u」の追加が唯一の重要な違いのようです。
ericslaw 09

双方向にコピーするのではなく、ソースから宛先へのミラーリング(ソースにない宛先のすべてを削除する)を強制するにはどうすればよいですか?
ガブリエルステープルズ

1
を使用する必要があるようですrsync -gloptrunc --delete --delete-excluded $srcdir $dstdir--deleteソースではありません先に何かを削除すると言い、そして--delete-excludedまた、通常、追跡またはコピーされない先で除外されたファイルを削除するために述べています。を使用する場合--delete-excluded、技術的にはを使用する必要はありませんが--delete、とにかく両方を使用しても問題ありません。詳細はこちらmanページにありますlinux.die.net/man/1/rsync
ガブリエルステープルズ

注:一般的なrsyncの使用法については、私もこのチュートリアルを自分で書いているので、必要に応じて参照できます。rsyncの使用方法
Gabriel Staples

4

どれも必要ありません。デーモンや他の種類の設定なしでrsyncを使用できます。

rsyncコマンドを使用するだけで準備完了です。


2

rsyncコマンドのパスから判断すると、Mac OS Xを使用していると思いますか?

個人的には、Time Machine(Leopardを使用している場合)、またはrsyncを使用するCarbon Copy Cloner(http://www.bombich.com/software/ccc.html)を使用することを選択します。

自分のスクリプトを修正するよりもはるかに簡単です。1つの利点は、Time MachineとCCCの両方が増分バックアップを提供することです。


2

使用した例は、バックアップには問題なく機能するように見えます。

ただし、rsyncを使用するときに考慮したいことの1つは、-link-destオプションを使用することです。これにより、複数のバックアップを保持できますが、変更されていないファイルにはハードリンクを使用し、すべてのバックアップが増分のスペースを取るようにします。使用例は次のとおりです。

rsync -aE --link-dest=/mnt/external_disk/backup_20090612 dir_to_backup \
    /mnt/external_disk/backup_20090613

これは、6月12日の日付付きバックアップがあり、6月13日に新しいバックアップを作成することを前提としています。すべてのファイルを印刷したくない場合は、-vオプションを省略できます。


1
rsnapshotは、記述どおりlink-destを使用して、スペース効率の良い方法でフルバージョンのバックアップを保持するバックアップシステムです。
ロリー

1

データベースを実行しているかどうかに大きく依存します。Rsyncは、すべてのファイルのスナップショットを取得し、書き込みの介入を無視します。データベースをバックアップする場合は、rsyncの前に無視フィルターの設定とDBダンプツールの実行を検討する必要があります。


1

書かれたコマンドは機能するはずですが、rsyncの上に構築され、ファイルの複数のバージョンを保持するrsnapshotというプログラムを見て、先週または先月のように戻って物事を見ることができます。設定は非常に簡単で、スペースの最適化に非常に優れているため、大量のチャーンがない限り、単一のバックアップよりも多くのスペースを占有しません。


1

オペレーティングシステムについては言及していません。* nixベースのOSであるという前提で進むと、コマンドは適切です。

ただし、一方または両方のドライブがNTFSフォーマットであり、* nixまたはMobaxterm / cygwinを使用してWindowsからアクセスされている場合、rsync増分機能はうまく機能しません。 rsync -a (archive flag)

NTFSドライブが関与している場合、以下を使用できます。

rsync -rvh --size-only --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

Mobaxterm sshクライアントをダウンロードして、Windowsでrsync機能を使用します。

NTFSドライブでrsyncを使用する方法の詳細を次に示します。


0

バックアップにrsyncを使用しようとしましたが、結局混乱になりました。rsyncは、バックアップよりも「同期」に適しています。そして、大きなファイルを比較することは永遠に続きます。

私は少し調べていくつか試してみました(基本的には、ubuntuのapt-cache検索バックアップから全員をテストします)。

最後に、「backup2l- メンテナンスの少ないバックアップ/復元ツール」になりました。簡単です。計画とローテーションを(レベルで)管理する方法が気に入っています。USB外部ドライブをコマンドラインから接続しているときはいつでも実行しますが、自動化することもできます。


0

バックアップを行うためにdirvishを試してください。http://www.dirvish.org/
いわゆるボールトでrsyncからのハードリンクを使用します。USBディスクが取り込めるだけの古いダンプを保持できます。または、自動化された方法で設定します。

dirvishのアイデアを理解したら、rsyncを使用して自分のすべてのオプションを使用する方が便利です。


rsnapshotはdirvishに似ています
ロリー

0

Windowsベースのコンピューター用のソリューションを見つける:http : //www.itefix.no/i2/node/10650

D:\パーティションを外部ドライブK:\にコピーするには

rsync -aE --delete --progress /cygdrive/d/* /cygdrive/k

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.