ホームページ  >  記事  >  システムチュートリアル  >  Linux tar コマンドの高度な使用法 - データのバックアップ

Linux tar コマンドの高度な使用法 - データのバックアップ

WBOY
WBOY転載
2024-02-12 22:10:02586ブラウズ

Linux システムには強力な tar コマンドがあります。 tar は元々、テープ バックアップ (テープ アーカイブ) を作成するために設計されており、ファイルとディレクトリをテープにバックアップしたり、テープからファイルを抽出または復元したりできます。これで、tar を使用して任意のストレージ メディアにデータをバックアップできるようになりました。これは、基礎となるファイル システムのタイプを考慮する必要のないファイル レベルのバックアップであり、増分バックアップをサポートします。

Linux tar命令高级用法——备份数据

1. いくつかの一般的なオプション

●-z、-gzip: gzip ツール (解凍) を使用します。通常、サフィックスは .gz

です。

●**-c, –create: **tar パッケージ。通常、サフィックスは .tar

です。

●**-f, –file=: ** の直後には、パッケージ化または圧縮後に取得されたファイル名が続きます

●**-x, –extract: **解凍コマンド、-c

に対応

#-p:バックアップ データの元の権限と属性を保持します

●**-g: **スナップショット ファイルとそれに続く増分バックアップ

●**-C:**解凍ディレクトリを指定

●**–exclude: **パッケージ化されていないディレクトリまたはファイルを除外し、通常の一致をサポートします

######他の######

●**-X、-exclude-from: **ファイル内で除外するディレクトリまたはファイルをリストします (-exclude= がそれ以上の場合に使用されます) ●**-t、-list: **バックアップ アーカイブ内のファイル リストを一覧表示します。-c および -x

と同時に表示されません。

●**-j、-bzip2: **bzip2 圧縮 (解凍) ツールを使用します。通常、サフィックスは .bz2

です。

●**-P: **絶対パスを保持しておくと、解凍時に自動的に絶対パスにも解凍されます。

●**-v: **(解凍)圧縮プロセスはファイル処理プロセスを表示します。一般的に使用されますが、大きなファイルには推奨されません

2. 増分バックアップ (Web サイト) データ

多くのシステム (アプリケーションまたは Web サイト) は毎日静的ファイルを生成します。より重要な静的ファイルを定期的にバックアップする必要がある場合は、それらを tar パッケージ化して圧縮し、指定した場所にバックアップできます (特に合計の一部)。ファイルが大きくなるにつれて、-g オプションを使用して増分バックアップを実行することもできます。

バックアップ ディレクトリには相対パスを使用することをお勧めします。つまり、バックアップする必要があるルート ディレクトリを入力します。

具体的な方法例は以下の通りです。

#「

」 リーリー

#-g オプションは、バックアップ中にディレクトリ ファイルのスナップショットを取得し、アクセス許可や属性などの情報を記録するものと理解できます。最初のバックアップ中に /tmp/snapshot_data.snap が存在しない場合は、新しいものが作成されますそして完全なバックアップを作成します。ディレクトリ内のファイルが変更された場合、最初のバックアップ コマンドを再度実行します (後続のアーカイブ ファイル名を変更することを忘れないでください)。変更されたファイルは、アクセス許可と属性を含めて、 - で指定されたスナップショット ファイルに基づいて自動的に増分バックアップされます。 g. 移動されたファイルは再度バックアップされません。

また、上記のリカバリは「保存リカバリ」であることにも注意してください。つまり、同じファイル名のファイルは上書きされ、元のディレクトリに既に存在するファイル (バックアップ ファイルには存在しない) は引き続き保持されます。 。したがって、ファイルをバックアップしたときとまったく同じように完全に復元したい場合は、元のディレクトリをクリアする必要があります。増分バックアップ ファイルがある場合は、同じ方法を使用してこれらのファイルを個別に解凍し、順序に注意する必要があります。

以下は、より包括的な例を示しています。

が必要です。

#/tmp/data ディレクトリをバックアップしますが、キャッシュ ディレクトリと一時ファイルは除外します

#ディレクトリが比較的大きい (>4G) ため、完全バックアップ中にバックアップ ファイルはいくつかの部分に分割されます (たとえば、各バックアップ ファイルは最大 1G まで可能です)

#すべてのファイル権限と属性 (ユーザー グループや読み取り/書き込み権限など) を保持します

#「

# cd /tmp/data

完全バックアップを作成します

# rm -f /tmp/snapshot_data.snap # tar -g /tmp/snapshot_data.snap -zcpf – –exclude=./cache ./ | Split -b 1024M – /tmp/bak_data$(date -I).tar.gz_

分割後、ファイル名の後に aa、ab、ac、... が続き、最終的なバックアップ アーカイブは

として保存されます。

bak_data2014-12-07.tar.gz_aa

bak_data2014-12-07.tar.gz_ab

bak_data2014-12-07.tar.gz_ac

#…

増分バックアップ

は完全バックアップと同じコマンドですが、1 日に複数回バックアップするとファイル名が重複する可能性があり、結果として

が発生することに注意してください。

バックアップの実装。分割の名前は依然として aa、ab から始まるため、1 日に生成 (変更) されるファイルの量が特に多くない場合は、増分部分を

にしないことをお勧めします。

分割処理: (分割する必要がある場合は、$(date %Y-%m-%d_%H) のように、ファイル名にさらに詳細な時間を追加します)

# tar -g /tmp/snapshot_data.snap -zcpf /tmp/bak_data2014-12-07.tar.gz –exclude=./cache ./

2日目の追加リザーブ

# tar -g /tmp/snapshot_data.snap -zcpf /tmp/bak_data2014-12-08.tar.gz –exclude=./cache ./

#回復プロセス

#「

完全バックアップ アーカイブ ファイルを復元する

/tmp/data/ ディレクトリを最初にクリアするかどうかを選択できます

# cat /tmp/bak_data2014-12-07.tar.gz_* | tar -zxpf – -C /tmp/data/

増分バックアップ アーカイブ ファイルを復元する

$ tar –zxpf /tmp/bak_data2014-12-07.tar.gz -C /tmp/data/

$ tar –zxpf /tmp/bak_data2014-12-08.tar.gz -C /tmp/data/

#…

必ず時系列順に復元してください。以下のようなファイル名ルールの場合は、上記のワイルドカード形式を使用することもできます

#週に 1 回の完全バックアップと 1 日 1 回の増分バックアップなど、定期的なバックアップが必要な場合は、crontab と組み合わせて実装できます。

3. ファイル システムのバックアップ

ファイル システムをバックアップするには、cpio、rsync、dump、tar など、さまざまな方法があります。ここでは、tar を使用して Linux システム全体をバックアップする例を示します。バックアップとリカバリのプロセス全体は上記と同様です。 まず第一に、Linux (ここでは CentOS) には、/proc、/lost found、/sys、/mnt、/media、/dev、/proc、/ など、バックアップする必要のないディレクトリがいくつかあります。テープにバックアップしている場合、ローカルの /backup ディレクトリにバックアップしているため、/dev/st0 についてはあまり気にする必要はありません。そのため、NFS またはネットワーク ストレージによってマウントされた他のディレクトリも除外する必要があります。 。

#「

除外リストファイルの作成

# vi /backup/backup_tar_exclude.list ###/バックアップ###

/proc

###/探し物を見つけた###

/システム

/月

###/メディア###

/開発

/tmp

$ tar -zcpf /backup/backup_full.tar.gz -g /backup/tar_snapshot.snap –exclude-from=/backup/tar_exclude.list /

#4.注意

データまたはファイル システムのバックアップに tar を使用している場合は、元のシステムに復元するか、別の新しいシステムに復元するかを検討する必要があります。

#tar バックアップは、ファイルの atime 属性に大きく依存します。

#ファイルが属するユーザーはユーザー ID に基づいて決定されます。マシン間リカバリでは、同じユーザーが同じ USERID を持つことを考慮する必要があります #バックアップおよびリカバリのプロセス中に他のプロセスを実行しないようにしてください。データの不整合が発生する可能性があります。

#ソフトリンクファイルとハードリンクファイルは正常に復元できます

以上がLinux tar コマンドの高度な使用法 - データのバックアップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlxlinux.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。