web-dev-qa-db-ja.com

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

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

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

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

コンピューターからFireWireに接続された外付けドライブにrsyncを実行している限り、これらは必要ないものと想定しています。私はそれを仮定するのは間違っていますか?実際には、その無害なコマンドよりも複雑になるのでしょうか。

17
stalepretzel

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

10
kbyrd

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

rsync -gloptrunc $srcdir $dstdir

簡単なガイド:

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

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

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

  • 2つ(またはそれ以上)のサーバー間で双方向で実行するため、双方向で同期します。その時点でマスターであると感じた方を更新します。
  • significantを使用して、どちらかがマスターになることを許可します。何かを削除したい場合は、両方で削除して、本当に削除されていることを確認する必要があります。

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

他の投稿の1つが前述したように、ローカルドライブを処理している場合、「チェックサム」は実際には強制的にオフにされる可能性があります。

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

31
ericslaw

いずれも必要ありません。デーモンやその他の種類の構成なしでrsyncを使用できます。

Rsyncコマンドを使用するだけで問題ありません。

4
OldJim

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

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

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

2
Steve Folly

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

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

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

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

2
Mark

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

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

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

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

Windowsでrsync機能を使用するには、Mobaxterm sshクライアントをダウンロードしてください。

これが 詳細情報 NTFSドライブでrsyncを使用する方法です。

1
Raman Kathpalia

記述されたコマンドは機能するはずですが、rsyncの上に構築され、ファイルの複数のバージョンを保持するrsnapshotと呼ばれるプログラムを確認すると、先週または先月の状態に戻って確認できます。構成は非常に簡単で、スペースの最適化に非常に優れているため、大量のチャーンが発生しない限り、単一のバックアップよりも多くのスペースを使用しません。

1

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

1
jldugger

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

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

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

0
chmeee

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

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

0
Michèle

Windowsベースのコンピューターの解決策を見つけます: http://www.itefix.no/i2/node/1065

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

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

0
Bostjan