dd命令的使用
作用:用指定大小的塊拷貝一個文件,并在拷貝的同時進(jìn)行指定的轉(zhuǎn)換。
選項: 指定數(shù)字的地方若以下列字符結(jié)尾乘以相應(yīng)的數(shù)字:
b=512,c=1,k=1024,w=2,xm=number m
if=file????????????????????????????? 輸入文件名,缺省為標(biāo)準(zhǔn)輸入。
of=file???????????????????????????? 輸出文件名,缺省為標(biāo)準(zhǔn)輸出。
ibs=bytes????? 一次讀入bytes個字節(jié)(即一個塊大小為bytes個字節(jié))。
obs=bytes 一次寫bytes個字節(jié)(即一個塊大小為bytes個字節(jié))。
bs=bytes??????????????????????? 同時設(shè)置讀寫塊的大小為bytes,可代替ibs和obs。
cbs=bytes????????????????????? 一次轉(zhuǎn)換bytes個字節(jié),即轉(zhuǎn)換緩沖區(qū)大小。
skip=blocks?????????????????? 從輸入文件開頭跳過block個塊后再開始復(fù)制。
seek=blocks???????????????? 輸出文件開頭跳過blocks個塊后再開始復(fù)制。????
?????????????????????????????????????? (通常只有當(dāng)輸出文件是磁盤或磁帶時才有效)。
count=blocks????????????????? 僅拷貝blocks個塊,塊大小等于ibs 指定的字節(jié)數(shù)。
conv=conversion[,conversion...]
?????????????用指定的參數(shù)轉(zhuǎn)換文件。
???????????????????? 轉(zhuǎn)換參數(shù):
???????????????????????????? ascii?????????????? 轉(zhuǎn)換EBCDIC為ASCII
???????????????????????????? ebcdic??????????? 轉(zhuǎn)換ASCII為EBCDIC
????????????????????????????? ibm????????????????? 轉(zhuǎn)換ASCII為alternate?? EBCDIC
???????????????????????????? block??????????????? 把每一行轉(zhuǎn)換為長度為cbs的記錄,不足部分用空格填充。
????????????????????????????? unblock??????????? 使每一行的長度都為cbs,不足部分用空格填充。
?????????????????????????????? lcase???????????????? 把大寫字符轉(zhuǎn)換為小寫字符。
?????????????????????????????? ucase??????????????? 把小寫字符轉(zhuǎn)換為大寫字符。
??????????????????????????????? swab????????????????? 交換輸入的每對字節(jié)。
??????????????????????????????? noerror????????????? 出錯時不停止。
??????????????????????????????? notrunc?????????????? 不截短輸出文件。
?????????????????????????????? sync??????????????????? 把每個輸入塊填充到ibs個字節(jié),不足部分用空(NUL)字符補齊。
案例分析:
1.數(shù)據(jù)備份與恢復(fù)
???? (1)整盤數(shù)據(jù)備份與恢復(fù)
?????????? 備份:
???????????????????? 將本地的/dev/hdx整盤備份到/dev/hdy:
????????????????????????????????? dd? if=/dev/hdx? of=/dev/hdy
????????????????????? 將/dev/hdx全盤數(shù)據(jù)備份到指定的路徑的p_w_picpath文件:
????????????????????????????????? dd? if=/dev/hdx? of=/path/p_w_picpath
????????????????????? 將/dev/hdx全盤數(shù)據(jù)備份,并利用gzip工具進(jìn)行壓縮,保存到指定路徑:
????????????????????????????????? dd? if=/dev/hdx? |? gzip? > /path/p_w_picpath.gz
???????????? 恢復(fù):
?????????????????????? 將備份文件恢復(fù)到指定盤:
????????????????????????????????? dd? if=/path/p_w_picpath? of=/dev/hdx
?????????????????????? 將壓縮的備份文件恢復(fù)到指定盤:
????????????????????????????????? gzip? -dc? /path/p_w_picpath.gz? |? dd? of=/dev/hdx
???? (2)利用netcat遠(yuǎn)程備份
?????????? 在源主機(jī)上執(zhí)行此命令備份/dev/hda:
?????????????????????? dd? if=/dev/hda? bs=16065b? |? netcat? <targethost-IP>?? 1234
?????????? 在目的主機(jī)上執(zhí)行此命令來接收數(shù)據(jù)并寫入/dev/hdc:
?????????????????????? netcat? -l? -p? 1234? |? dd? of=/dev/hdc? bs=16065b
?????????? 以下兩條指令是目的主機(jī)指令的變化,分別采用bzip2和gzip對數(shù)據(jù)進(jìn)行壓縮,并將備份文件保存在當(dāng)前目錄:
?????????????????????? netcat? -l? -p? 1234? |? bzip2 > partition.img
?????????????????????? netcat? -l? -p? 1234? |? gzip >? partition.img
????? (3)備份MBR
???????????????? 備份:
????????????????????????? dd? if=/dev/hdx? of=/path/p_w_picpath? count=1? bs=512
???????????????? 恢復(fù):
????????????????????????? dd? if=/path/p_w_picpath? of=/dev/hdx
?????? (4)備份軟盤
?????????????????????? dd? if=/dev/fd? of=disk.img? count=1? bs=1440K
??????? (5)拷貝內(nèi)存資料到硬盤
?????????????????????? dd? if=/dev/mem? of=/path/mem.bin? bs=1024
???????? (6)從光盤拷貝ISO鏡像
??????????????????????? dd? if=/dev/cdrom? of=/path/cd.iso
? 2.增加swap分區(qū)文件大小
??????????? dd? if=/dev/zero? of=/swapfile? bs=1024? count=262144? (注:此處為256M)
??????????? mkswap? /swapfile
??????????? swapon? /swapfile
??????????? 在/etc/fstab文件中增加:/swapfile? swap? swap? default? 0? 0
3.銷毀磁盤數(shù)據(jù):
???????????? dd? if=/dev/urandom? of=/dev/hda1
4.磁盤管理
?????? (1)得到最恰當(dāng)?shù)腷lock size
?????????????? dd? if=/dev/zero? bs=1024? count=1000000? of=/root/1Gb.file
?????????????? dd? if=/dev/zero? bs=2048? count=500000? of=/root/1Gb.file
?????????????? dd? if=/dev/zero? bs=4096? count=250000? of=/root/1Gb.file
?????????????? dd? if=/dev/zero? bs=8192? count=125000? of=/root/1Gb.file
??????? (2)測試硬盤的讀寫速度
?????????????? dd?? if=/root/1Gb.file? bs=64k? |? dd? of=/dev/null
?????????????? dd?? if=/dev/zero? of=/root/1Gb.file? bs=1024? count=1000000
???????? (3)修復(fù)硬盤
?????????????? 當(dāng)硬盤較長時間放置不使用后,磁盤上會產(chǎn)生magenetic? flux? point。當(dāng)磁頭讀到這些區(qū)? 域的時候會遇到困難,并可能導(dǎo)致I/O錯誤。當(dāng)這種情況影響到硬盤的第一個扇區(qū)時,可能導(dǎo)致硬盤報廢。這個命令是安全,高效的。
???????????????? dd? if=/dev/sda? of=/dev/sda
?
轉(zhuǎn)載于:https://blog.51cto.com/wfab12/421852
總結(jié)
- 上一篇: 团队!团队!团队!
- 下一篇: 遥远的,理想与现实的完美统一——听完华大