忍者ブログ
出来損ないのカメレオン

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

PR
ブログ内検索
Counter


カレンダー
02 2025/03 04
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
忍者ブログ [PR]