tarコマンドによるドキュメントのバックアップとリカバリ

2475 ワード

Linuxオペレーティングシステムで最も簡単なファイルとディレクトリバックアップツールはcp(コピー)コマンドです.しかし、バックアップが必要なファイルやディレクトリの数が多い場合、cpコマンドを使用するだけでは「力不足」になり、バックアップされたファイルの数やディスク領域がサーバに大きな圧力をかける可能性があります.そのため、バックアップが必要なデータのアーカイブと圧縮が必要です.
Linuxオペレーティングシステムで一般的に使用される圧縮コマンドツールにはgzip、bzip 2が含まれており、最も一般的なアーカイブコマンドツールはtarです.tarコマンドを使用すると、特定のオプションでgzipおよびbzip 2プログラムを自動的に呼び出して、アーカイブ、圧縮の一連のプロセスを完了できます.もちろん、アーカイブされた一連のプロセスを解凍、解放することもできます.
gzipコマンドとgunzipコマンド
gzipを使用して作成される圧縮ファイルのデフォルトの拡張子は「.gz」です.圧縮ファイルを作成する場合は「-g」オプションを使用すると圧縮率が向上しますが、ファイルが大きい場合は時間がかかります.この圧縮方式では、元のファイルは保持されません.
[root@localhost /]# ls -lh mkfile*
-rw-r--r--. 1 root root **10M** 6   30 23:10 mkfile
[root@localhost /]# gzip mkfile
[root@localhost /]# ls -lh mkfile*
-rw-r--r--. 1 root root **10K** 6   30 23:10 mkfile.gz

gzipで圧縮されたファイルを解凍する必要がある場合は、「-d」オプションのgzipコマンドを使用するか、gunzipコマンドを直接使用します.
[root@localhost /]# gzip -d mkfile.gz
  
[root@localhost /]# gunzip mkfile.gz

bzip 2およびbunzip 2コマンド
bzip 2とbunzip 2コマンドの使い方はgzipとgunzipコマンドとほぼ同じで、唯一違いがあります.bzip 2を使用して作成された圧縮ファイルのデフォルトの拡張子は「.bz 2」です.同じように元のファイルも保持されません.
[root@localhost /]# ls -lh mkfile 
-rw-r--r--. 1 root root **10M **6   30 23:10 mkfile
[root@localhost /]# bzip2 -9 mkfile
[root@localhost /]# ls -lh mkfile.bz2 
-rw-r--r--. 1 root root** 49** 6   30 23:10 mkfile.bz2

解凍時:
[root@localhost /]# bzip2 -d mkfile.bz2 
  
[root@localhost /]# bunzip2 mkfile.bz2 

tarコマンドを使用してアーカイブと解放
tarコマンドは主にディレクトリとファイルをアーカイブするために使用されます.実際の作業では、通常、アーカイブと同時にパッケージファイルを圧縮し(先ほど説明したコマンドを使用して)、ディスク領域を節約します.tarコマンドを使用する場合、オプション前の「-」は省略できます.一般的なオプションは次のとおりです.
(1)バックアップファイルの作成
作成したアーカイブファイルを圧縮する必要があります.圧縮ツールは「-z」および「-j」オプションで自動的に呼び出されます.リカバリディレクトリまたはファイルをバックアップする場合は、作業ディレクトリをターゲットディレクトリまたはファイルがあるパスに切り替えることをお勧めします.バックアップコマンドを実行するときに相対パスを使用します.
[root@localhost /]# tar zcvf sysfile.tar.gz etc 
[root@localhost /]# ls -lh sysfile.tar.gz 
-rw-r--r--. 1 root root 143M 6   30 23:54 sysfile.tar.gz

(2)データ復旧
[root@localhost /]# tar zxf sysfile.tar.gz -C /etc

「.tar.bz 2」形式の圧縮パッケージを作成する
「-z」オプションを「-j」に変更すればよい.
(1)バックアップファイルの作成
[root@localhost etc]# tar jcvf /userhome.tar.bz2 passwd shadow
[root@localhost etc]# ls -lh /userhome.tar.bz2 
-rw-r--r--. 1 root root 1.5K 7    1 00:00 /userhome.tar.bz2

(2)データ復旧
[root@localhost /]# tar jxf userhome.tar.bz2 -C /etc