コンピュータ関連の操作メモ、トラブル記録。

UNIX一般のちょっとしたコツ

ファイルの取り扱い

-(ハイフン)で始まるファイル名を持つファイルの消し方
カレントディレクトリを示す "./" をつけてファイル名を指定する。
例えば"--multi-volume"というファイルを消す場合には
rm ./--multi-volume とする。
ファイル名に"./"を付加してファイル名を指定するのは、何もファイルの消去だけではなく、他でも応用可能。
スペースを持つファイル名を持つファイルの消し方
シングルクォーテーションでファイル名を囲めばよい。
例えば、"test data"というファイル名を消す場合には、
rm 'test data' とする。

大規模レイドディスクのバックアップ

cpio
cpioは、標準でマルチボリュームのアーカイブを作成できる便利なコマンドであるが、TRCでバックアップとして使用するには、問題点がある。
(1) 2GBまでのファイルしか扱えない。(GNU cpioなら8GBまで。運用上は、6GBくらいまでがいいかもしれない)
TRCでは地震探査データをはじめとして、2GB以上どころか、10GB以上のファイルが多数あり、これではまともなバックアップはできない。
tar
tarは、広く使われていて、扱いやすいコマンドであるが、TRCでバックアップとして使用するには問題点がある。
(1) tarは、cpioにあるようなファイルサイズの制限はないが、マルチボリュームのアーカイブは作成できない。(gnu tarなら、-Mオプションでマルチボリュームにできるようだが、うまく展開できた試しがない)
TRCでは、1パーティーションが1TB程度の領域が多数あり、利用率が高い場合、現在のテープデバイスでは、1本のテープで収めることができず、まともなバックアップはできない。
解決策
基本はgnu cpioで処理し、2GBを超えるファイルについては、gnu tarで処理する。
手順は、
(1) cpio(gnu)での処理 (2GB未満のファイルを対象)
cd [target directory]
find . -size -2147483648c -print | cpio > /dev/rmt/[n]

(2) tar(gnu)での処理 (2GB以上のファイルを対象)
cd [target directory]
find . -size +2147483647c -print > tar_list (tarで処理する対象のリスト作成)
tar cvf /dev/rmt/[n] -T tar_list

ストレージの取り扱い

テープのブロックサイズの調べ方
テープを読み込む際にブロックサイズを調べるには、
dd if=[input device] of=[disk file name] bs=100k count=1 [Enter]
を実行し、of=で指定したファイルのファイルサイズを調べればいい。

ddコマンド

(1) ディスクのコピー
dd if=/dev/sda1 of=/dev/sda2
ifのデバイスからofのデバイスへコピーする。両方のディスクが同じ容量でなければならない。

(2) ファイル作成
1024(ブロックサイズ) * 3000000(カウント数) bytesの"test1.dat"ファイルを作成。ifに"/dev/zero"を指定することで、ファイルの内容がすべてNULLになる。
timeコマンドを介すると、ディスクアクセス性能を調べられる。

# time dd if=/dev/zero of=test1.dat bs=1024 count=3000000
3000000+0 records in
3000000+0 records out
3072000000 bytes (3.1 GB) copied, 29.2116 s, 105 MB/s

real 0m29.248s
user 0m0.424s
sys 0m11.125s

(3) ディスクの消去
# dd if=/dev/zero of=/dev/hda

ifに"/dev/zero"を、ofに消去したいディスクのデバイス名を指定する。

Wiki内検索

Menu

ここは自由に編集できるエリアです。

管理人/副管理人のみ編集できます