天天看點

《Linux指令、編輯器與Shell程式設計》讀書筆記8-Linux資料備份與應用管理一、備份指令工具二、RPM管理

一、備份指令工具

【tar】

1. 備份為歸檔檔案(.tar格式)

tar -cvf  歸檔檔案名  源檔案名/目錄

檢視包内檔案清單:

tar -tf  tar包名

解壓:

tar -xvf  tar包名

2. 壓縮為.gz包

tar -zcvf  歸檔檔案名  源檔案名/目錄

檢視包内檔案清單:

tar -tzf  tar包名

解壓:

tar -zxvf  tar包名

3. 壓縮為.bz2包(壓縮率比gz高,但打包速度慢)

tar -jcvf  歸檔檔案名  源檔案名/目錄

檢視包内檔案清單:

tar -tjf  tar包名

解壓:

tar -jxvf  tar包名

*檢視包内檔案清單時,也可以統一使用:“tar -tvf  tar包名”這個指令。

【cpio】

1. 将目前目錄下的所有檔案歸檔為(使用選項o)backup.cpio檔案,并顯示歸檔過程(-v)

find  -print|cpio  -ov >./backup.cpio

2. 在上面的基礎上,使用bzip2壓縮生成歸檔檔案:

find  -print|cpio  -ov |bzip2 > ./backup.cpio.bz2

3. 使用gzip壓縮生成歸檔檔案

find  -print|cpio  -ov | gzip > ./backup.cpio.gz

4. 檢視cpio歸檔檔案中的檔案清單:

cpio  -tv < backup.cpio

5. 将上述備份檔案恢複到目前目錄

cpio  -iv < backup.cpio

6. 如果恢複時報找不到目錄,則需要攜帶參數d:

cpio  -idv < backup.cpio

7. 恢複時想保留時間戳

cpio  -idmv < backup.cpio

8. 恢複備份包中的部分檔案:

cpio  -idv  "*.user" < backup.cpio

9. 恢複記憶體鏡像檔案

zcat /boot/initrd-3.0.76-0.11-default | cpio -imd

*Linux記憶體鏡像檔案一般存放在引導區/boot目錄下,以initrd開頭。

【bzip2】

這是一個壓縮檔案的工具

bzip2 [OPTION]  file_name

【OPTION】

k:壓縮/解壓後,保留原始檔案

d:執行解壓

t:測試壓縮檔案的完整性

num:1~9,壓縮率,1壓縮率最低、速度最快,9反之,預設使用6

v:執行任務時顯示詳細資訊

*不使用任何選項表示壓縮檔案,壓縮後的檔案會自動被重命名為.bz2字尾

【舉例】

#以最大壓縮率壓縮檔案:

bzip2  -9v  tomcat_8.0.28.tar

 tomcat_8.0.28.tar:  2.289:1,  3.495 bits/byte, 56.31% saved, 36290560 in,15853714 out.

#解壓檔案并保留源檔案:

bzip2  -dkv  tomcat_8.0.28.tar.bz2

 tomcat_8.0.28.tar.bz2: done

【gzip】

gzip [OPTION]  original_file_name

【OPTION】

c:壓縮後将結果輸出到标準輸出并保留原始檔案

d:解壓縮

l:顯示壓縮檔案的詳細資訊

r:地櫃地處理目錄下的所有檔案及子目錄,或遞歸地解壓縮檔案内的目錄和子目錄

v:顯示指令的執行過程

t:測試壓縮檔案

num:1~9,壓縮級别,預設使用6

【整盤備份指令dd】

該指令類似于制作ghost鏡像

dd <OPTION>

【OPTION】

if:指定要讀取的檔案,預設為标準輸入

of:指定要輸出的檔案,預設為标準輸出

ibs:指定讀取資料時的塊大小,預設512B

obs:指定輸出資料時的塊大小,預設512B

bs:同時指定讀取、輸出的塊大小

count:指定讀取的區塊數

【舉例】

1. 備份磁盤sda:

dd if=/dev/sda of=/mnt/backup/sda_backup.dd

2. 恢複磁盤資料:

dd if=/mnt/backup/sda_backup.dd of=/dev/sda

3. 備份時壓縮備份資料

dd if=/dev/sda | gzip >/mnt/backup_sda.dd.gz

4. 将壓縮備份的檔案恢複

gzip -dc  /mnt/backup_sda.dd.gz |dd  of=/dev/sda

5. 将硬碟A的資料直接拷貝到硬碟B

dd if=/dev/sda  of=/dev/sdb

6. 由于該工具是直接讀取磁盤上的塊,可以用它制作磁盤鏡像:

dd if=/dev/sda  of=/mnt/sda.iso

7. 産生一個5GB的檔案放到目前目錄下:

dd if=/dev/zero  of=test.5G  bs=1M count=5120

*/dev/zero的功能是無限制的提供資料0

8. 使用随機數銷毀磁盤上的資料

dd if=/dev/urandom  of=/dev/sdd

9. 備份磁盤的分區表至目前目錄:

dd if=/dev/sda  of=Parlist.img  bs=512 count=1

10. 恢複分區表

dd if= Parlist.img  of=/dev/sda

*理論上該指令可以在業務運作時執行,但為了保證資料一緻性,還是要停止業務和資料庫執行

二、RPM管理

【常用選項】

q:查詢模式

a:查詢所有已安裝的rpm包

i:顯示安裝/解除安裝時的詳細資訊

l:顯示軟體包的檔案清單,也就是這個rpm包被安裝在什麼位置

f:查詢指定檔案所屬的軟體包

v:顯示指令執行過程

h:安裝時顯示進度資訊

e:解除安裝指定的包

U:更新

force:強制操作,忽略沖突

oldpackage:強制更新

【舉例】

1. 查詢所有已安裝的軟體包

rpm  -qa| more

2. 查詢某軟體包的詳細資訊:

rpm  -qi  vsftpd-2.0.7-4.25.1

3. 安裝rpm包:

rpm -ivh  vsftpd-2.0.7-4.25.1

有時,需要忽略沖突強制安裝:

rpm -ivh  --force  vsftpd-2.0.7-4.25.1

4. 更新rpm:

rpm -Uvh  <rpm_name>

5. 解除安裝:

rpm -e  <rpm_name>

繼續閱讀