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

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

実行中のサーバーのバックアップを作成したいです。サーバーをオフにせずに、すべての構成ファイルとすべてをバックアップします。

これを実現するにはどうすればいいでしょうか? すべてをコピーしても大丈夫でしょうか? ディレクトリに問題があったからですroot

重要な構成があるため、あまり実験したくありません。

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

何か案は?

答え1

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

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

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

これによってブート レコードがコピーされるわけではないことに注意してください。そのためには、ディスク全体をコピーする必要がありますが、これはディスクがマウントされていないときに実行する必要があります。(参照: 完全にフルバックアップするマシンをシャットダウンし、ライブ CD から起動するか、別のパーティションから起動します。)

次に、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で示されるように最初のディスクに設定しました。1つの2 番目のディスクの場合は sdb、3 番目のディスクの場合は sdc などと調整します。

で示されるように、std out に出力します-

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

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

最後はncnetcatです。前のパイプからの入力を受け取り、ネットワーク上のポート4242に送ります。目的地の名前


受信側では逆のことを行います。

nc -l 経由でポート 4242 の入力をリッスンします。

必要に応じて解凍してください。

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


重要な注意点:

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

答え2

私がやることは、ヘネス

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

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

私の友人はラックスペースでホストしていますが、ラックスペースのユーザーには ISO ファイルを自動的に作成するオプションがあり、新しいサーバーに移行する場合は、古いクラウド サーバーに古いバックアップを保存したり、rsyncシャットダウンしたりできるので、料金はかかりますが、安価だと教えてくれました。

あなたのホスティング会社が自動バックアップ システムを提供しているか、またはサポート料金を支払っているかどうかはわかりません。初めての場合は、問い合わせてサポートを依頼してみる価値はあるでしょう。

関連情報