web-dev-qa-db-ja.com

実行中のサーバーのルートファイルシステムをssh経由で複製できますか?

実行中のサーバーのバックアップを作成したい。すべての設定ファイルとそれをオフにせずにすべて。

どうすればこれを達成できますか?すべてコピーしてみても大丈夫ですか? rootディレクトリに問題があったためです。

重要な構成になっているので、あまり実験したくありません。

私はこれをすべてsshで作成しようとしています。このバックアップを行うにはどうすればよいですか?

何か案は?

4
AAlvz

すべてのデータをバックアップしたい場合は、ssh経由でサーバーにログインしてから、すべてのファイルをコピーするだけです。例えば。 scpまたはrsyncを使用します。

使用すれば、OSファイルを含むすべてをコピーすることもできます
rsync -zvr --exclude /dev/ / destination_computer_name_or_ip

-r:再帰的
-v:詳細
-z:圧縮を有効にします

これはブートレコードをコピーしないことに注意してください。これを行うには、ディスク全体をコピーし、ディスクがマウントされていないときにコピーします。 (読み取り:utterly_full_backupするマシンをシャットダウンし、liveCDから起動するか、別のパーティションから起動します。)

次に、ddを使用してドライブ全体を読み取ります。

コード例:

バックアップを保存するPC:
nc -l 4242 | gunzip | cat > my_full_disk_backup_of_PC_named_foo

そしてバックアップするPC上で:
dd if=/dev/sda of=- bs=1M | gzip | nc -p 4242 name_of_the_destination

ddはディスクから読み取ります。ブートセクタと空のセクタを含むディスク全体。
この例では、sdで示されるように最初のディスク用に設定しましたa。 2番目のディスクの場合はsdb、3番目のディスクの場合はsdcなどに調整します。

-で示されるstdoutに出力します。

bs = 1Mはブロックサイズを設定します。これは必要ありませんが、これがないと、多くの小さな読み取りと大きなオーバーヘッドが発生します。これを512バイトまたは4kより大きい値に設定すると、処理速度が向上します。

次に、出力を|をgzipでパイプして、圧縮します。これは、CPUがネットワークよりもはるかに高速であることを前提としています。ソースのgzipと宛先のgunzipをスキップできます。その場合、圧縮データではなく生データをネットワーク経由で送信します。

最後はncまたはnetcatです。前のパイプからの入力を受け取り、name_of_the_destinationという名前のコンピューターのポート4242に向けてネットワークに配置します。


受信側では、逆の操作を行います。

Nc -lを介して、ポート4242での入力をリッスンします。

必要に応じてgzipを解凍します。

そして最後にそれをファイルに書き込みます。


重要な注意

これは、バックアップしているディスクから起動しているときに実行できます。ただし、バックアップ中にファイルシステムが同じままであるという保証はありません。したがって、ディスクを読み取り専用として起動できる場合にのみ試してください。 (例:純粋にRAMディスクを使用する)

4
Hennes

私がすることはHennesによく似ています

念のため、isoファイルを作成してダウンロードし、ディスクまたはUSBに配置して、ドロップボックスにコピーをアップロードします。

mkisofs -V LABEL -r DIRECTORY | gzip > backup.iso.gz

私の友人はrackspaceでホストしていますが、rackspaceユーザーにはisoファイルを自動的に作成するオプションがあり、新しいサーバーに移行する場合は、rsyncを使用して古いバックアップを古いクラウドサーバーに保存できると彼は言いました。または何でも、それをシャットダウンしても、彼らはまだ支払いますが、安いです。

あなたのホスティングが自動バックアップシステムを提供しているかどうか、またはあなたがサポートにお金を払っているのかどうかはわかりません。初めての場合は、彼らに聞いて、多分彼らにやらせる価値があります。

1
Lynob