在這章的例子中使用了一個 5GB 8-mm 磁帶驅動器,其設備文件為/dev/rmt0。
一、備份
備份可以通過命令行或 SMIT 菜單實現。
1、命令行備份
AIX命令 backup 和 restore 專門用於備份和恢復。這兩個命令做為標准 UNIX實用程序 tar、cpio、dd 和 pax 的補充。下面我們分別介紹備份整個文件系統和單個文件或目錄的方法。
(1)備份文件系統
在 AIX 中用 backup 命令做一個文件系統轉儲是通過 i-node 格式備份。i-node 是AIX 管理數據的一種方式,通過 i-node 格式備份文件系統的基本的句法是:
# backup -f Device -DumpLevel -u File system
說明:
Device 設備可以是一個普通文件或一個設備文件。
DumpLevel 是從 0~9 的數字值,0在此代表完整的文件系統備份。其它級別代表增長備份,例如:n 級備份包括從最近一次 n- 1 級備份後被修改了的所有文件。
如果不指定備份級別,backup 缺省為 9級備份。
-u 選項可以更改用 backup 做增長備份時的記錄文件,該文件是/etc/dumpdates。在備份文件系統之前應該先做 unmount 並做 fsck,當然根文件系統是例外的。如果要備份根文件系統,MOUNT 在根上的其他文件系統,包括日志文件系統都不被備份。
以下是使用 backup 的兩個例子。
例 1:對/home 文件系統的一個完整的備份:
# umount /home
# fsck /home
# backup - f /dev/rmt0 - O - u /home
# mount /home
例 2:備份根文件系統,從最後一次 0 級備份後改變了的文件:
# backup - f /dev/rmt0 - 1 - u /
在第一例我們使用了安裝點/home 作為文件系統的名字。這樣做是為了更容易記住它。當然,在 backup 命令中也可以使用裸設備文件名或塊設備文件名。要得到一個文件系統的塊設備文件名,請使用 lsfs 命令。而在塊設備文件前面加字符 r就是裸設備文件名了。
(2)備份單個文件和目錄
備份單個文件和目錄,請使用-i 選項,基本的句法是:
# backup –f Device –i
注意:
1.如果不包括-fDevice,backup 自動寫到/dev/rfd0磁盤驅動器。
2.必須提供給 backup 一列需要備份的文件名字做為標准輸入。有多種方法可以提供給 backup 做為標准輸入,通過輸入每個文件的名字並以 Ctrl-D結束;使用重定向;使用 find 命令或 cat 命令。
如果備份介質已經裝好,下例中後面的-q 選擇項是用來禁止 backup 命令提示裝入備份介質。
# backup - f /dev/rmt0 - iq
/.profile
/etc/profile
/home
^D
# backup -f /dev/rmt0 < /tmp/filelist -iq
# cat /tmp/filelist | backup -f /dev/rmt0 -iq
# find /home - print|backup - f /dev/rmt0 - iq
上面最後一個例子將備份/home 目錄的全部內容。但是在此前的 2 個例子中,如果把/home 列入/tmp/filelist 裡面,那麼僅僅此目錄名被備份。為了使它能象備份文件一樣備份目錄樹,可輸入:
# find $(</tmp/filelist)- print|backup - f /dev/rmt0 – iq
另外為了在運行 backup 時看見文件和目錄列表在屏幕上滾動,使用-v 選擇項。為了保存這些輸出,可以用重定向標准輸出或使用 tee 命令,如下:
# find $(< /tmp/filelist) -print | backup -f /dev/rmt0 -iqv >\ /var/adm/backed.up.files
# find $ ( < /tmp/filelist ) -print | backup -f /dev/rmt0 -iqv | tee |\
var/adm/backed.up.files
2、用 SMIT 菜單備份
使用 smit backfilesys 快捷命令備份文件系統。
使用 smit backfile 快捷命令來按文件名方式備份。
二、恢復
restore 命令是用來恢復通過 i-node 方式或按名字方式備份的文件。這個命令僅僅對 backup 備份的文件有效,並且可以確定備份時通過哪種格式,是 i-node 或名字。
恢復完整文件系統的基本句法是:
# restore -f Device -r
恢復通過名字備份的文件的基本句法是:
# restore -f Device -x
例子:從磁帶恢復通過 i-node 備份的一個完整文件系統:
# restore -f /dev/rmt0 - r
用這種方式恢復前,不必 unmount 文件系統,但是因為 restore 用相對的路徑名字,所以要確定把當前目錄改變到適當的目錄。
恢復通過 i-node 備份的單個的文件,使用-i 選擇項,將啟動 restore 交互模式,它將引導完成恢復文件的整個進程。例如:
# restore -f /dev/rmt0 -i
從磁帶恢復通過名字備份的所有文件:
# restore -f /dev/rmt0 -x
從磁帶提取所有文件並且運行時顯示文件名字:
# restore - f /dev/rmt0 - xv
恢復文件/home/partlist:
# restore - f /dev/rmt0 - xv /home/partlist
從磁帶恢復/home 目錄的全部內容:
# restore - f /dev/rmt0 - xv - d /home
為了避免在恢復文件時失敗,要知道是使用完整路徑(通過名字備份的文件)或相對的路徑,這是極其重要的。要確定這點,使用-T 選擇項得到備份介質的文件列表,例如:
查看本欄目更多精彩內容:http://www.bianceng.cn/OS/unix/
從 backup 命令生成的/archive/backup1 中列出文件:
#restore - f /archive/backup1 - T
從磁帶列出文件:
# restore - f /dev/rmt0 - T
就算路徑名由一個“點”開始,例如。/home/partlist,也要按列出的內容使用文件或目錄的名字。
同樣,可以使用 SMIT 恢復文件,使用快捷命令 smit restfile 恢復單個的文件,用 smit restfilesys 恢復文件系統。
三、映象備份
mksysb 是 AIX 提供的生成可啟動磁帶的方法,讓磁帶包含根卷組的一個映象。這也是單個磁盤系統的一種保存方式,在磁盤失敗的情況下,它提供了一種迅速的恢復方式,當然,用來恢復的mksysb 映象應該是較新的。也可以使用 mksysb 去安裝另外的機器,這將要求再做一些配置,例如 IP 地址,因為幾乎在原機器上的任何東西都被拷貝到磁帶了。
做系統映象備份:
# smit mksysb
得到如下界面:
---------------------------------------------------------------------------------
Back Up the System
80
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[TOP] [Entry Fields]
WARNING: Execution of the mksysb command will
result in the loss of all material
previously stored on the selected
output medium. This command backs
up only rootvg volume group.
* Backup DEVICE or FILE [] +/
Create MAP files? no +
EXCLUDE files? no +
Make BOOTABLE backup? yes +
(Applies only to tape)
EXPAND /tmp if needed? no +
(Applies only to bootable tape)
Number of BLOCKS to write in a single output [] #
(Leave blank to use a system default)
---------------------------------------------------------------------------------
簡單地輸入磁帶驅動器的設備文件名字,例如/dev/rmt0,如果系統的備份超過一盤磁帶,在 FORCE increase of work space if needed 選擇 yes。
mksysb 僅僅備份根卷組(rootvg)。AIX版本 4開始可以通過使用 savevg 命令或使用的 SMIT 命令 smit savevg 做其它卷組的映象,例如,備份一個叫datavg 的卷組,輸入:
# savevg - i datavg
缺省設備是/dev/rmt0,使用其它的設備可以用-f 選擇項指定。
為了恢復這個卷組,使用 restvg 命令或 smit restvg。例如,從/dev/rmt0 恢復
這個卷組,且不須要出現提示,輸入:
# restvg – q
a
作者信息:51cto博客 Oracle小混子