web-dev-qa-db-ja.com

Linuxでtgzファイルからバックアップを復元する方法

自分のサーバー上の別のLinuxサーバーから生成されたbackup.tgzファイルから復元するにはどうすればよいですか?次のコマンドを試してみました。

tar xvpfz backup.tgz -C /

上記のコマンドは機能しましたが、既存のシステムファイルを置き換えたため、私のLinuxサーバーが正しく機能しなくなりました。

問題が発生することなく復元するにはどうすればよいですか?

2
Antonio Alimba

--skip-old-filesコマンドを使用して、既存のファイルを上書きしないようにtarに指示できます。

2つのサーバー間でソフトウェアのバージョンが異なる場合でも、バックアップファイルで問題が発生する可能性があります。一部のデータファイル構造の変更が発生し、動作が停止する場合があります。

より洗練されたバックアッププロセスを開発する必要があります。

2
Tero Kilkanen

特に指定がない限り、tarユーティリティは現在のディレクトリ内の元のツリーにファイルを抽出するため、たとえば/ home/antonio/recoveryにいて、コマンドを発行します

tar xvpfz backup.tgz

ファイルは/home/antonio/recovery...に復元されます

-Cオプションを使用する場合、これはtarにディレクトリを変更し、そこにルート化されたツリーにファイルを抽出するように指示します。

 tar xvpfz backup.tgz -C /tmp 

tarに/ tmpに変更し、ファイルを/tmp/...に抽出するように指示します。

4
user9517

ヒント:ファイルやディレクトリだけを復元するのではなく、.

次のコマンドを使用して、バックアップの内容を表示します。

tar -tzf backup.tgz | grep toys.db(またはあなたが探しているもの)

そして、次のようなものを返すと仮定します:./ home/myname/play/toys.db

復元するには、次のようにします。tar-xvpzf backup.tgz -C/tmp ./home/myname/play/toys.db

0
leecallen