私の状況:
私は 2 つの Web サイトがある VPS (Ubuntu) を持っています。VPS は初めてなので (最近共有ホスティングから移行したばかり)、すべての Web サイトを希望どおりに実行できるように VPS を構成する方法を学習するのに 2 週間近く費やしました。VPS を構成する際に多くのミスを犯したため、再インストール、構成、間違い、再インストール、構成などを繰り返しながら学習しました。
今はすべて正常です。VPS は実行されており、必要なすべてのサービスも機能し、多くの教訓が得られました。すべて正常です。
質問:
VPS 全体のバックアップを作成する最も簡単な方法は何ですか?
WinSCP を使用するだけで VPS のバックアップを作成できますか? つまり、ルート (/) フォルダーに接続し、そこからすべての VPS ファイルをダウンロードするということですか?
はい、そうであれば、VPS 全体を最初から再インストールする必要がある場合、後でどのように復元しますか?
私の状況に関する追加情報:
- データベースは手動でバックアップされます(phpmyadmin 経由で可能)
- 私のVPS管理パネル(SolusVM)にはバックアップツールがありません
- 私はGUIのcpanel/directadmin/virtualminなどを使用していません。コンソールのみを使用しています。
答え1
リモート仮想サーバーをバックアップする私の推奨方法は、単にファイルをコピーすることです。カーネルはいずれにせよホスト上にあります。もちろん、復元時には注意が必要ですし、完全な復元はできないかもしれません (ディスク イメージとは異なります)。一方、テスト用のローカル サーバーなど、別のサーバーに移行する方が簡単です。
さて、リモート接続を介して多数の小さなファイルをダウンロードすると、オーバーヘッドが大きくなるため、実際にはかなり遅くなります。サーバーから物理的に離れている場合、これはさらに顕著になります。通常、私はすべてを 1 つのtar
アーカイブにまとめ、それを圧縮してサイズを小さくすることを好みます。
これを行うコマンドはtar cpzf filename.tar.gz /
(ここで は/
ルートからすべてを再帰的にバックアップすることを意味します)。既存のバックアップファイルを除外する- 多数のバックアップを保存する予定の場合は、それらをすべて 1 つのディレクトリに保存し、そのディレクトリを除外する方が簡単です。その後は、任意の方法でそのファイルをダウンロードするだけです。
tar xpf filename.tar
復元はルートディレクトリにいるときにコマンドで実行します。ターゲットディレクトリを指定すると-C
。
答え2
私は答えました同一の質問serverfault で、bob の回答とほぼ同じ内容をカバーしていますが、使用しているツールと焦点は少し異なります。パッケージ リストを作成し、rsync を使用することをお勧めします (権限を維持でき、ファイル転送がかなり効率的であるため)。
他の方法がすべて失敗した場合は、昔ながらの方法があります。dpkg --get-selections を使用してインストール済みパッケージのリストをダンプし、dpkg --set-selections を使用してインストールします。必要に応じて、ソース システムと同じユーザーを作成します。cat /etc/passwd でそれらのユーザーがリストされ、diff を使用して 2 つのリストが同一であるかどうかを確認できます。
次に、rsync を使用して、設定用の /etc/ フォルダー、ユーザー用のさまざまな /home/ フォルダー (ここで権限を確認)、および /var/www/ などのその他のフォルダーを複製します。テストして、すべてが揃っていることを確認すれば完了です。新しいサーバーをセットアップするよりも時間がかかりません。
時には、古くてシンプルな方法が最善です。これを手動で解決する場合は、現在のサーバーからこれを自動的に複製するスクリプトを作成するだけです。
答え3
簡単な増分バックアップには rsync を使用します。コマンドラインから実行することも、より高度なシナリオをスクリプト化することもできます。
まず次の例から始めましょう:
$ options="--stats -aHh --delete"; echo == RUNNING with options: $options; time rsync -e ssh $options root@your-server-ip-or-hostname:/ /destination/my-server-backup --exclude /proc --exclude /dev --exclude /sys --exclude /run/udev
私が作成したスクリプトにはさらに多くの例が記載されていますが、元々は Windows 用でしたが、Linux に直接適用できます。https://github.com/paravz/windows-rsync-backup