ufsdump
BACKUP
mt
ufsdump
ufsrestore
remote backup, restore
cpio
tar
-------------------------------------
テープドライブで使うコマンド
mt status テープの状態を見る(mt -f /dev/rmt/1 status)
mt rewind テープの巻戻し(mt -f /dev/rmt/0 rewind)
mt retension テープの巻直し(mt -f /dev/rmt/1 retension)
mt -f /dev/rmt/0n eom テープを記録されている末尾まで送る
mt fsf n n =保存した最後の番号(1,2,3,4)に送る
/dev/rmt/0 通常の指定(巻き戻しあり)
/dev/rmt/0c 圧縮する
/dev/rmt/0n 巻き戻さない
/dev/rmt/0cn 圧縮して巻き戻さない
ufsdumpによるバックアップ
フルダンプ - 0(バックアップの最中にファイルシステムが更新されないように,
シングルユーザモードで行うのが理想)
スライスの確認
$ df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s0 1019792 71301 887304 8% /
/dev/dsk/c1t0d0s6 4136979 1656194 2439416 41% /usr
/proc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
/dev/dsk/c1t0d0s1 76824367 51779777 24276347 69% /var
/dev/dsk/c1t0d0s7 4136979 1006617 3088993 25% /export/home
swap 2350300 192 2350108 1% /tmp
各スライスのバックアップ
スクリプトを作成してバックアップするといいかも※1,2
バックアップログ
/etc/dumpdates
※1ローカルテープドライブにとる
#!/bin/sh
ufsdump 0cuf /dev/rmt/0n /dev/rdsk/c1t0d0s0
ufsdump 0cuf /dev/rmt/0n /dev/rdsk/c1t0d0s6
ufsdump 0cuf /dev/rmt/0n /dev/rdsk/c1t0d0s1
ufsdump 0cuf /dev/rmt/0 /dev/rdsk/c1t0d0s7
-----------------------------------
※2リモートのテープドライブにとる
#!/bin/sh
ufsdump 0cuf root@server:/dev/rmt/0n /dev/rdsk/c1t0d0s0
ufsdump 0cuf root@server:/dev/rmt/0n /dev/rdsk/c1t0d0s6
ufsdump 0cuf root@server:/dev/rmt/0n /dev/rdsk/c1t0d0s1
ufsdump 0cuf root@server:/dev/rmt/0 /dev/rdsk/c1t0d0s7
-------------------------------------
ufsrestoreによるファイルシステムの復元
ufsrestoreコマンドは、カレントディレクトリにデータを復元します
対話モードのリストア
# ufsrestore if /dev/rmt/0
# ufsrestore > help
ufsrestoreコマンドのオプション
r ダンプしたファイルをすべて復元
x 指定したディレクトリ、ファイルのみを復元
t ダンプファイルを表示
i テープ内容を確認しながら復元
v 作業中にファイル、ディレクトリを表示
f テープデバイス名を指定
s 1本のテープに複数収納されている場合、何番目の ダンプファイルを復元するか指定
※ r, x, t, i オプションは同時使用不可
テープの2番目に記録されているダンプファイルを復元
# ufsrestore rvfs /dev/rmt/0n 2
特定のファイル(例:/usr/data)があるかどうか確認してから復元する
# ufsrestore tvf /dev/rmt/0 ./usr/data
# cd /tmp
# ufsrestore xvf /dev/rmt/0 ./usr/data
# mv ./usr/data /usr/data
ファイルがすべて復元されたのを確認したら、復元時にできるワークファイルrestoresymtable を削除する
# rm restoresymtable
復元後のファイルシステムの整合性に異常がないか fsckコマンドでチェック
# fsck -m /dev/rdsk/c1t0d0s0
ufsrestoreによるフルレストア
CDまたはBootDiskから起動させ、通常のインストールと同じプロセスですすめる
そのマシンにDLTドライブがある場合は、インストールタイプ指定で b -s を入力してシングルモードで起動
>Select type of installation: b -s
他のマシンのDLTから復旧する場合、手動リブートを選択し→ネットワーク設定やホスト名を設定→
スライスをきる。(formatが面倒だから。パターン1でも)最後にコンソールにて、各ファイルシステムをアンマウントする
# cd /
# umount /a
# umount /a/usr
# umount /a/var
# umount /a/export/home
バックアップテープから各スライスのリストア
保存テープ内容の例
1 / /c1t0d0s0
2 /usr /c1t0d0s6
3 /var /c1t0d0s1
4 /export/home /c1t0d0s7
・ newfsでファイルシステムを作成
# newfs /dev/rdsk/c1t0d0s0
newfs:construct a new file system /dev/rdsk/c1t0d0s0 (y/n)?: y
・ ファイルシステムの整合性をチェックする
# fsck -m /dev/rdsk/c1t0d0s0
・ 作成したファイルシステムを/mntにマウント
# mount /dev/dsk/c1t0d0s0 /mnt
・ /mntへ移動
# cd /mnt
・ ufsrestoreコマンドを実行(例では最初に保存されているファイル)
# ufsrestore rvfs /dev/rmt/0 1
・ 作業用ファイルrestoresymtableを削除
# rm restoresymtable
・ ルートへ移動
# cd /
・ /mntをアンマウントする
# umount /mnt
・ ファイルシステムの整合性をチェックする
# fsck -m /dev/rdsk/c1t0d0s0
※ /ルートの場合、installbootコマンドを実行し、再起動
# installboot /usr/platform/i86pc/lib/fs/ufs/pboot /usr/platform/i86pc/lib/fs/ufs/bootblk \s
/dev/rdsk/c1t0d0s2
※ その他の場合はそのままマウントできる
# mount /export/home
リモートバックアップとリモートレストア
テープのないマシン: SRVR1 (192.168.0.10)
テープ付きのマシン: SRVR2 (192.168.0.20)
・ SRVR1, SRVR2 の /etc/hosts にそれぞれ SRVR2, SRVR1のhostを追加
# vi /etc/hosts
192.168.0.20 SRVR2
# vi /etc/hosts
192.168.0.10 SRVR1
・ SRVR2のルートに /.rhosts を作成
# vi /.rhosts
SRVR1 root
・ SRVR2にrootログインを許す設定をする(1行コメントアウト)
# vi /etc/default/login
#CONSOLE=/dev/console
・ SRVR1でSRVR2にパスワードなしでルートログインできるかテスト(パスワードが聞かれなければOK)
# rlogin SRVR2
# exit
・ リモートバックアップ
# ufsdump 0cuf root@SRVR2:/dev/rmt/0cn /dev/rdsk/c0t0d0s0
※cオプションは圧縮、nオプションは巻き戻さない
・ リモートレストア
# ufsrestore rvfs root@SRVR2:/dev/rmt/0 1
※1本のテープに複数のdumpファイルがあるときにsオプションをつけ、最後の番号を入力(1,2,3,4)
cpio
オプション
-o 標準入力からファイル、ディレクトリのパスを読み取り、 cpio形式で出力
-i cpio形式のファイルから復元
-c 可搬性のために、ASCII 文字形式でヘッダ情報を読み書き
-t 実際の復元は行わず、ファイルリストのみを確認します。必ず Iオプションと併用
-v cpio形式に出力もしくは、cpio 形式からデータを復元する際のファイル名を表示
-B 512バイトのレコードにブロック化して入出力を行う
-d データを復元する際にディレクトリを作成
-m データを復元する際に、ファイルの更新時間を以前の状態と同じする
-H 異なる形式のファイルを扱うときに使う。引数としてファイル形式を指定
バックアップ
# find .-print | cpio -oc > /dev/rmt/0
# ls | cpio -oc > /dev/rmt/0
一覧の表示
# cpio -civt < /dev/rmt/0
復元
# cpio -icv < /dev/rmt/0
# cpio -icv "filename" < /dev/rmt/0
# cpio -icdv < /dev/rmt/0
tar
tarは、マルチボリュームに対応していないため、サイズをあらかじめdf, du で把握しておく必要がある。
オプション
c まとめる
x 復元
t 一覧表示
v 実行時にファイル、ディレクトリ名を表示
f ファイル名を引数として指定
B リモートのテープドライブを使用する
c, x, tオプションは同時には使用できない
テープにとる(/etc/hosts)
# cd /etc
# mt -f /dev/rmt/0 rewind
# tar cvf /dev/rmt/0 ./hosts
ファイルをまとめる
# tar cvf filename.tar ./filename*
ディレクトリ内のファイルをtarでまとめてgzで圧縮
# tar cvf filename.tar ./filename* | gzip filename.tar
テープの2番目に格納されているデータを確認する
# mt -f /dev/rmt/0 rewind
# mt -f /dev/rmt/0n fsf 1
# tar tvf /dev/rmt/0
戻す
# tar xvf /dev/rmt/0 filename1 filename2