cpioバックアップコマンド
5343 ワード
cpioは比較的古いバックアップコマンドであり、テープドライブのバックアップに使用されるツールでもあります.それでも、このコマンドを使用する必要がある場合が多い.たとえば、システムメモリイメージディスクをカスタマイズする場合などです.
知識:システムメモリイメージディスクは、通常、ブートパーティション/rootにあり、ファイル名はinitrdで始まります.このファイルは主にシステム起動時に必要なモジュール、例えばファイルシステムモジュール、RAIDモジュールなどをロードするために使用される.
小知識:メモリイメージとは、メモリに外部メモリファイルと全く同じイメージを作成することです.ユーザは、ファイル全体をメモリにマッピングするか、メモリに部分的にマッピングすることができます.メモリイメージの変更は、外部メモリファイルにそのまま反映されます.これにより、メモリイメージによる村ファイルへの操作が実現されます.
cpioコマンドはtarコマンドと同様に、ファイルまたはファイルリストをファイルにアーカイブする機能もあります.
【コマンド形式】
cpio [option] [destination-directory]
【共通オプション】
i:coppy-inモードを使用して、アーカイブファイルを復元するか、アーカイブファイルのファイルリストをリストします.
o:copy-outモードを使用して、アーカイブファイルを作成します.
p:copy-passモードを使用して、ファイルを目的ディレクトリに直接コピーします.
c:古いASCIIアーカイブモードを使用します.プラットフォーム間で使用する必要がある場合は、古いASCIIアーカイブフォーマットを使用する必要があります.
d:必要なディレクトリを作成します.ファイルが同じディレクトリにない場合は、このオプションを使用します.
v:処理手順の詳細を表示します.
t:アーカイブファイルのファイルリストを表示します.
m:ファイルのタイムスタンプを保持します.
H:指定されたフォーマットでファイルをアーカイブします.
【パラメータの説明】
copy-in:このモードを使用すると、オプションではないパラメータはワイルドカードとして扱われ、一致するファイルのみがコピーされます.ワイルドカードがない場合、cpioはすべてのファイルを復元します.
copy-out:このモードでは、標準入力からファイルリストが読み込まれ、アーカイブファイルにファイルが追加され、最後にアーカイブファイルが標準出力に出力されます.ファイルリストは区切り文字として改行文字を使用するため、findコマンドを使用して生成することが望ましい.
copy-pass:このモードでは、ファイルリストのファイルが別のディレクトリにコピーされ、アーカイブパッケージは使用されません.copy-inとcopy-outモードの結合に相当する.
二、cpioを使用してファイルをアーカイブする
cpioコマンドを使用してファイルをアーカイブする場合は、copy-outモード(オプションo)を使用してファイルリストを読み取り、ファイルをアーカイブする必要があります.それ以外にfindコマンドを使用して、アーカイブが必要なファイルリストを生成する必要があります.
(1)cpioはファイルを操作しないため,入出力はリダイレクトやパイプで行わなければならない.
たとえば、現在のディレクトリ内のすべてのファイルをアーカイブします.
上記の例のコマンドでは、リダイレクト出力を使用しない場合、cpioコマンドは結果を標準出力に直接出力します.
(2)オプションvを使用して、アーカイブの詳細を表示します.
(3)リダイレクト先がデバイスである場合,cpioはアーカイブファイルをデバイスに格納する.たとえば、テープドライブ・デバイスにアーカイブ・ファイルを保存します.
(4)tarアーカイブコマンドとは異なり,cpioは圧縮機能を提供していない.生成されたアーカイブを圧縮する場合は、パイプと対応する圧縮コマンドを使用します.
(1)アーカイブのファイルリストを表示する:
(2)アーカイブ内のファイルリストを表示する場合、オプションvを使用して詳細なファイル情報を表示できます.
(3)アーカイブファイルのファイルリストを表示する場合、コマンドにオプション以外の文字が使用されている場合、cpioはファイルワイルドカードとして扱われます.例えば「*.c」を使用して、アーカイブファイルのすべてを表示する.c末尾のファイル:
cpioアーカイブファイルを復元する場合は、cpioのオプションcopy-inモード(すなわちオプションi)を使用する必要があります.このモードでは、アーカイブ内のファイルのリストを表示するのと同じように、すべてのオプション以外の文字もワイルドカードとして扱われます.
(1)アーカイブファイルが異なるフォーマットを使用している場合、cpioは自動的にファイルを判断して復元し、アーカイブファイルのフォーマットを指定する必要はありません.
たとえば、オプションiを使用してファイルをアーカイブから復元し、リカバリファイルの詳細を表示します.
知識:システムメモリイメージディスクは、通常、ブートパーティション/rootにあり、ファイル名はinitrdで始まります.このファイルは主にシステム起動時に必要なモジュール、例えばファイルシステムモジュール、RAIDモジュールなどをロードするために使用される.
小知識:メモリイメージとは、メモリに外部メモリファイルと全く同じイメージを作成することです.ユーザは、ファイル全体をメモリにマッピングするか、メモリに部分的にマッピングすることができます.メモリイメージの変更は、外部メモリファイルにそのまま反映されます.これにより、メモリイメージによる村ファイルへの操作が実現されます.
一、cpioコマンドの基本フォーマット
cpioコマンドはtarコマンドと同様に、ファイルまたはファイルリストをファイルにアーカイブする機能もあります.
【コマンド形式】
cpio [option] [destination-directory]
【共通オプション】
i:coppy-inモードを使用して、アーカイブファイルを復元するか、アーカイブファイルのファイルリストをリストします.
o:copy-outモードを使用して、アーカイブファイルを作成します.
p:copy-passモードを使用して、ファイルを目的ディレクトリに直接コピーします.
c:古いASCIIアーカイブモードを使用します.プラットフォーム間で使用する必要がある場合は、古いASCIIアーカイブフォーマットを使用する必要があります.
d:必要なディレクトリを作成します.ファイルが同じディレクトリにない場合は、このオプションを使用します.
v:処理手順の詳細を表示します.
t:アーカイブファイルのファイルリストを表示します.
m:ファイルのタイムスタンプを保持します.
H:指定されたフォーマットでファイルをアーカイブします.
【パラメータの説明】
copy-in:このモードを使用すると、オプションではないパラメータはワイルドカードとして扱われ、一致するファイルのみがコピーされます.ワイルドカードがない場合、cpioはすべてのファイルを復元します.
copy-out:このモードでは、標準入力からファイルリストが読み込まれ、アーカイブファイルにファイルが追加され、最後にアーカイブファイルが標準出力に出力されます.ファイルリストは区切り文字として改行文字を使用するため、findコマンドを使用して生成することが望ましい.
copy-pass:このモードでは、ファイルリストのファイルが別のディレクトリにコピーされ、アーカイブパッケージは使用されません.copy-inとcopy-outモードの結合に相当する.
二、cpioを使用してファイルをアーカイブする
cpioコマンドを使用してファイルをアーカイブする場合は、copy-outモード(オプションo)を使用してファイルリストを読み取り、ファイルをアーカイブする必要があります.それ以外にfindコマンドを使用して、アーカイブが必要なファイルリストを生成する必要があります.
(1)cpioはファイルを操作しないため,入出力はリダイレクトやパイプで行わなければならない.
たとえば、現在のディレクトリ内のすべてのファイルをアーカイブします.
# find
# o ,
[root@localhost test]# find -print | cpio -o >../backup.cpio
91 blocks
上記の例のコマンドでは、リダイレクト出力を使用しない場合、cpioコマンドは結果を標準出力に直接出力します.
(2)オプションvを使用して、アーカイブの詳細を表示します.
[root@localhost zhu]# find -print | cpio -ov >../backup.cpio
.
./test.sh
./.bashrc
./.bash_history
./backup.cpio
./.bash_logout
...
(3)リダイレクト先がデバイスである場合,cpioはアーカイブファイルをデバイスに格納する.たとえば、テープドライブ・デバイスにアーカイブ・ファイルを保存します.
[root@localhost home]# find -print | cpio -ov >/dev/st0
(4)tarアーカイブコマンドとは異なり,cpioは圧縮機能を提供していない.生成されたアーカイブを圧縮する場合は、パイプと対応する圧縮コマンドを使用します.
[root@localhost test]# find -print | cpio -ov | gzip >../backup.cpio.gz
[root@localhost test]# find -print | cpio -ov | bzip2 >../backup.cpio.bz2
三、アーカイブファイルのファイルリストを表示する
(1)アーカイブのファイルリストを表示する:
[root@localhost zhu]# cpio -t <backup.cpio
.
join3
uniq_test
smbag
paste2
smbaa
...
(2)アーカイブ内のファイルリストを表示する場合、オプションvを使用して詳細なファイル情報を表示できます.
[root@localhost zhu]# cpio -tv <backup.cpio
drwxr-xr-x 3 root root 0 Dec 10 14:53 .
-rw-r--r-- 1 root root 44 Dec 9 08:41 join3
-rw-r--r-- 1 root root 98 Dec 9 09:09 uniq_test
-rw-r--r-- 1 root root 1024 Dec 9 09:36 smbag
...
(3)アーカイブファイルのファイルリストを表示する場合、コマンドにオプション以外の文字が使用されている場合、cpioはファイルワイルドカードとして扱われます.例えば「*.c」を使用して、アーカイブファイルのすべてを表示する.c末尾のファイル:
[root@localhost zhu]# cpio -tv "*.c" <backup.cpio
-rw-r--r-- 1 root root 159 Dec 8 14:22 condition.c
91 blocks
四、cpioアーカイブファイルの復元
cpioアーカイブファイルを復元する場合は、cpioのオプションcopy-inモード(すなわちオプションi)を使用する必要があります.このモードでは、アーカイブ内のファイルのリストを表示するのと同じように、すべてのオプション以外の文字もワイルドカードとして扱われます.
(1)アーカイブファイルが異なるフォーマットを使用している場合、cpioは自動的にファイルを判断して復元し、アーカイブファイルのフォーマットを指定する必要はありません.
たとえば、オプションiを使用してファイルをアーカイブから復元し、リカバリファイルの詳細を表示します.
[root@localhost zhu]# cpio -iv <./backup.cpio