免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1495 | 回复: 0
打印 上一主题 下一主题

Backup Tools in UNIX(Linux) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-14 10:44 |只看该作者 |倒序浏览


[/url]
Backup Tools in UNIX(Linux)

本文介紹UNIX(Linux)系統中常用的備份工具(tar,cpio,dump,dd),這些工具設計目的主要在將資料備份至磁帶中。然而近年來由於硬碟容量大幅提升,價格則大幅的滑落,將資料備份至硬碟也是一個不錯的選擇。同時為了講解方便,本文範例全部以硬碟備份為主。
 

tar

Command Format:
tar options [argument] filenames
tar將filenames所指定的檔案,備份至所指定的目的地 - a tarfile(A tape for default)
 

常用options:
c: 建立一個back archive file ( From the filenames)
t:  列出tarfile的內容
x: 從tarfile 中還原所有檔案
v: verbal mode
f: 指定tarfile的檔名,若忽略此一選項,則將tarfile指向預設磁帶
z:壓縮(When Backup),解壓縮(When restore)
 

Examples:
Example 1 (Full Backup)
[woody@nmc /home]$ tar cvf /data/woody.tar /home/woody
將/home/woody整個目錄(含子目錄)備份至檔案/data/woody.tar
[woody@nmc /home]$ tar tvf /data/woody.tar
檢視/data/woody.tar 所含的檔案資訊
[woody@nmc /home]$ tar cvfz  /data/etc_bin_sbin.tar  /etc  /bin /sbin
將/etc, /bin及/sbin三個目錄(含子目錄)下的所有檔案,以壓縮格式備份至檔案/data/etc_bin_sbin.tar.gz
Example 2  (Incremental Backup)
[root@nmc /home]# tar cf /data/etc2.tar `find /etc -mtime -1 ! -name '*.o' ! -type d -print`
將/etc目錄下,最近24小時(1天)內曾經被更動過內容(包括新增)所有檔案,備份至/data/etc2.tar
(如果sourcefiles list中包含目錄名稱,tar會將該目錄下所有目錄及檔案一概備份,因此利用tar進行incremental backup時,必須去除所有目錄,否則將會失去該有的準確性)
Example 3 (Restore)
[root@nmc /home]# cd /tmp
[root@nmc /tmp]# tar xvf /data/etc2.tar
將原先備份至/data/etc2.tar的檔案還原至目錄/tmp下(包含所有檔案結構)
 

tar is the easiest way of backup to use with directory subtree.
 

tar is not that powerful as dump, but is sufficient for systems with relatively small amount of critical data.
 

cpio

cpio可以用來將檔案複製到一個架構檔案中,或者從一個架構檔案中複製出一個檔案。
cpio運作可以分成三個模式:copy-out, copy-in及copy-pass.
 

copy-out運作模式 - with option -o
copy-out模式用來將檔案複製至archive檔案中,執行時由標準輸入讀入檔案清單(一個檔案獨立一行),並將archive檔案寫至標準輸出。使用copy-out模式備份時,必須運用輸出轉向技巧,將archive檔案轉向至磁帶,或硬碟中的一個檔案。
Examples:
Example1: (Full Backup)
[root@nmc /tmp]#find /etc -print | cpio -o > /data/etc.cpio
##
將/etc目錄下所有檔案備份至/data/etc.cpio
Example2:(Incremental Backup)
[root@nmc /tmp]#find /etc -mtime -1 ! -name "*.o" -print|cpio -o > /data/etc1.cpio
##將/etc目錄下,最近24小時(1天)內曾經被更動過內容(包括新增)所有檔案,備份至/data/etc1.cpio
Example3:(Incremental Backup)
[root@nmc /data]# touch /data/etc_full
##紀錄Full Backup時間
[root@nmc /data]# find /etc -print |cpio -o > /data/etc.cpio
##A Full Backup
A day after
[root@nmc /data]#find /etc -newer /data/etc_full -print|cpio -o > /data/etc_1.cpio
## A level 1 incremental backup
 


copy-in運作模式 - with option -i
copy-in模式用來將檔案由archive檔案中複製出,執行時由標準輸入讀入archive檔案內容,並依據命令列中非選項的參數(檔案清單),取出archive中的檔案。
Example1:(Restore a single fie)
[root@nmc /data]# cpio -im /etc/passwd
##將/etc/passwd由/data/etc.cpio archive中還原
Example2:(Restore all files)
[root@nmc /data]# cpio -im
 

cpio is designed to backup completely arbitrary set of files.
 

Generally, cpio can pack data more efficiently than tar.
 

On restore, cpio skips bad spots on the archive file, while tar just die.
 

dump & restore

dump 是UNIX作業系統中複雜度較高,且功能較為完整的備份工具,restore則是其相對的還原工具。(不同版本的dump名稱有些不同,例如AIX中為"backup",Solaris 中為ufsbackup/ufsrestore,Linux中則為dump/restore。就功能與用法而言則是大同小異。)
 

dump selectively (according to the backup levels) backup all files within a filesystem (a disk partition).
dump 也可以用於備份單一目錄,但限於同一目錄下的所有檔案( 含所有其子目錄)。
 

對於完整file system備份而言,dump將備份等級分成10 levels(0~9)。
Level 0 為Full Backup,其他level的backup則會自動將上一次backup level低於本次等級備份時間之後異動的所有檔案,作為本次備份的標的,屬於incremental的方式。 (各個等級最近備份時間紀錄於/etc/dumpdates檔案中,如果此一檔案不存在,予以手動方式產生之)
 

dump係針對整個file system備份至磁帶設計,當然,也可以用於單一目錄,也可將備份目的地指向硬碟中的某一檔案。
 

對於非整個File system的備份,dump僅能做Full Backup。(不管指定的backup等級為何)
 

Command Format of dump:
dump options arguments filenames/directory
 


full backup with dump(Examples)
[root@nmc /data]# dump 0uf  /data/home.dmp /home
or
[root@nmc /data]# dump 0uf /data/home.dmp  /dev/hda6
##options    0 --> Full backup (Level 0)
                  u --> 將備份時間紀錄於/etc/dumpdates (About level 0)
                  f  --> 指定備份目的地(若省略此參數,則將備份目的地指向磁帶機)
##本例子,將/dev/hda6備份成為單一檔案/data/home.dmp (file name don't care)
 

Incremental backup with dump(Examples)
[root@nmc /data]# dump 1uf  /data/home.dmp /home
##本例子,將/dev/hda6上一次Full backup後異動的所有檔案備份成為單一檔案/data/home1.dmp (file name don't care)
 

Command Format of restore:
restore options arguments [filenames/directory]
restore將dump archive files中備份的檔案還原至指定的目錄
 

restore files from dump archives with interactive mode
[root@nmc /data]# dump 0f /data/etc.dmp /etc
##babckup /etc to a file "/data/etc.dmp
[root@nmc /data]#
restore -if etc.dmp
^^^^進入restore的interactive mode
restore >
ls
.:
etc/
restore >
cd etc
restore >
add passwd
restore >
add hosts
^^^^將/etc/passwd 及 /etc/hosts列入還原清單
restore >
extract
^^^^還原/etc/passwd 及 /etc/hosts(還原至/data目錄之下)
You have not read any tapes yet.
Unless you know which volume your file(s) are on you should start
with the last volume and work towards the first.
Specify next volume #:
1
set owner/mode for '.'? [yn]
n
restore >
quit
 


本文来自ChinaUnix博客,如果查看原文请点:[url]http://blog.chinaunix.net/u/22239/showart_155151.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP