WIKI使用導(dǎo)航
站長(zhǎng)百科導(dǎo)航
站長(zhǎng)專(zhuān)題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢(qián)
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專(zhuān)題
- 云計(jì)算
- 微博營(yíng)銷(xiāo)
- 虛擬主機(jī)管理系統(tǒng)
- 開(kāi)放平臺(tái)
- WIKI程序與應(yīng)用
- 美國(guó)十大主機(jī)
CentOS/使用tar備份
tar命令[ ]
tar是一個(gè)已移植到Linux中的經(jīng)典UNIX命令。tar是Tape ARchive(磁帶歸檔)的縮寫(xiě),最初設(shè)計(jì)用于將文件打包到磁帶上。它是一個(gè)基于文件的命令,它本質(zhì)上是連續(xù)地、首尾相連地堆放文件。
使用tar可以打包整個(gè)目錄樹(shù),這使得它特別適合用于備份。歸檔文件可以全部還原,或從中展開(kāi)單獨(dú)的文件和目錄。備份可以保存到基于文件的設(shè)備或磁帶設(shè)備上。文件可以在還原時(shí)重定向,以便將它們重新放到一個(gè)與最初保存它們的目錄(或系統(tǒng))不同的目錄(或系統(tǒng))。tar是與文件系統(tǒng)無(wú)關(guān)的,它可以使用在ext2、ext3、jfs、Reiser和其他文件系統(tǒng)上。
在Linux世界里經(jīng)常使用tar命令進(jìn)行備份,此時(shí)將涉及tar命令的一些參數(shù)。 tar命令的完整格式是:
tar <operation> [options] <files_to_backup_or_restore>
其中:
- operation:用于指定tar要進(jìn)行的操作
- options:用于指定一系列的選項(xiàng)
- files_to_backup_or_restore:用于給出要備份或要恢復(fù)的文件或目錄名,在指定目錄時(shí)也包括了這個(gè)目錄下的子目錄。
下表給出了tar命令的操作說(shuō)明。
操作 | 說(shuō)明 |
---|---|
[-]A | 連接多個(gè)歸檔文件為一個(gè)歸檔文件。 |
[-]c | 用于創(chuàng)建一個(gè)新的存檔文件。 |
[-]x | 從歸檔文件中恢復(fù)備份文件。 |
[-]t | 用于列出一個(gè)存檔文件中的文件名。 |
[-]u | 僅僅添加比存檔文件中更新的文件。即,用新增的文件取代原備份文件,如果在歸檔文件中找不到要更新的文件,則把它追加到備份文件的最后。 |
[-]d | 將歸檔文件的內(nèi)容與文件系統(tǒng)上的當(dāng)前文件作比較。 |
[-]r | 將文件追加到指定的歸檔文件中。 |
--delete | 從歸檔文件中刪除指定的文件。 |
下表給出了tar命令的常用選項(xiàng)說(shuō)明。
選項(xiàng) | 說(shuō)明 |
---|---|
-f name | 使用name指定存檔文件名或設(shè)備名。 |
-v | 列出處理的詳細(xì)信息。 |
-z | 用GNU的gzip壓縮文件或解壓。 |
-j | 用GNU的bzip2壓縮文件或解壓。 |
-C | directory 將當(dāng)前目錄切換到 directory。 |
-M | 創(chuàng)建/列出/恢復(fù)多卷存檔文件,以便在幾個(gè)備份介質(zhì)中存放。 |
-N | DATE 指定僅對(duì)那些比DATE新的文件進(jìn)行操作。 |
-p | 表示希望保留文件許可權(quán)限。 |
-P | 保留文件的絕對(duì)路徑,即不去掉/。 |
-w | 要求等待用戶確認(rèn)每一個(gè)操作。 |
-W | 表示在寫(xiě)入備份內(nèi)容到備份設(shè)備以后再讀出來(lái)進(jìn)行驗(yàn)證以提高可靠性。 |
-T | filename 從指定的文件中讀需要備份或恢復(fù)的文件名。 |
-X | filename 不處理給定文件中列出的文件。 |
--exclude=PATTERN | 不處理指定的文件。 |
使用tar備份文件[ ]
通常將備份文件存儲(chǔ)在單獨(dú)的分區(qū)中,可以是系統(tǒng)本地硬盤(pán)中的一個(gè)分區(qū),也可以是另外掛裝的移動(dòng)設(shè)備中的一個(gè)分區(qū)。因此,在備份之前,應(yīng)該創(chuàng)建掛裝點(diǎn)目錄,并掛裝文件系統(tǒng)。
# mkdir /backups # mount -t ext3 /dev/sdc1 /backups # mkdir /backups/logs /backups/last-full
指定要備份的文件或目錄[ ]
1、使用如下的命令備份指定的一個(gè)或多個(gè)目錄到/backups目錄中的一個(gè)歸檔文件
# tar -zcvpf /backups/full-backup.tar.gz /home # tar -zcvpf /backups/full-backup.tar.gz /home /etc
2、使用命令替換生成要備份的目錄
下面的命令備份整個(gè)/系統(tǒng),除了mnt、media、dev、proc、backups目錄和lost+found目錄。
# tar -zcvpf /backups/full-backup.tar.gz -C / \ > $(ls /| egrep -v "backups|mnt|media|dev|lost+found|proc")
3、使用exclude選項(xiàng)剔除無(wú)需備份的文件或目錄
1) 下面的命令備份整個(gè)/系統(tǒng),除了mnt、media、dev、proc、backups目錄和lost+found目錄。
# tar -zcvpf /backups/full-backup.tar.gz -C / \ > --exclude=mnt --exclude=media --exclude=dev --exclude=proc \ > --exclude=backups --exclude=*/lost+found \ > --exclude=var/spool/squid > . # 此處的 “.” 表示要備份根目錄(因?yàn)榍懊娴?“-C /” 將當(dāng)前目錄切換為根目錄)
2) 下面的命令備份etc、home、usr/local 和 var/spool(不包括 var/spool/squid) 目錄。
# tar -zcvpf /backups/full-backup.tar.gz -C / \ > --exclude=var/spool/squid \ > etc home usr/local var/spool
4、將要備份的文件或目錄名放入文本文件
# cat whatsbackup.txt /home /etc /usr/local /root
# tar -zcvpf /backups/full-backup.tar.gz -T whatsbackup.txt
1. -T 參數(shù)后指定的文件中,不能使用文件通配符
2. 可以使用 ls 或 find 命令生成 whatsbackup.txt 文件
增量備份[ ]
1、使用帶 N 選項(xiàng)的 tar 命令實(shí)現(xiàn)增量備份
下面的命令將備份/home 目錄自 2008-01-29 以來(lái)修改過(guò)的文件
# tar -N 2008-01-29 -zcvpf /backups/inc-backup_$(date +%F).tar.gz /home
下面的命令將備份 /home 目錄昨天以來(lái)修改過(guò)的文件
# tar -N $(date -d yesterday "+%F") \ > -zcvpf /backups/inc-backup_$(date +%F).tar.gz /home
以下兩種書(shū)寫(xiě)方式均可,但含義有所不同:
- -N yesterday : 比昨天的當(dāng)前時(shí)間新的文件,例如:若當(dāng)先時(shí)間為 2:31,則表示自昨天 2:31 以來(lái)的新文件
- -N $(date -d yesterday ”+%F”) : 自昨天 0:00 以來(lái)的新文件
下面的命令使用命令替換從文本文件中獲得日期
# tar -N $(cat /backups/last-full/full-backup-date) \ > -zcvpf /backups/inc-backup_$(date +%F).tar.gz /home
/backups/last-full/full-backup-date 是在創(chuàng)建完全備份的同時(shí)使用如下命令創(chuàng)建的文件:
date +%F > /backups/last-full/full-backup-date
2、使用 find 命令獲取增量備份的文件列表 使用如下命令找出 n 天(如:7天)內(nèi)修改過(guò)的文件,生成備份內(nèi)容的文件列表
# find /home /etc /root -mtime -7 -print > /backups/logs/inc-backup_$(date +%F).log
對(duì)指定文件列表中的文件實(shí)現(xiàn)增量備份
# tar -zcvpf /backups/inc-backup_$(date +%F).tar.gz \ > -T /backups/logs/inc-backup_$(date +%F).log
參考來(lái)源[ ]
http://www.centospub.com/bbs/forumdisplay.php?fid=10