压缩工具和整盘备份工具dd
一、使用gzip壓縮文件
gzip是GNU zip的縮寫。
【命令格式】
gzip [option] filename
【常用選項】
c:壓縮后將結果輸出到標準輸出,并保留原始文件。
d:解壓縮文件。
l:顯示壓縮文件的詳細信息。
r:遞歸地處理目錄下的所有文件及子目錄,或遞歸地解壓縮文件內的目錄和子目錄。
v:顯示命令的執行過程。
t:測試壓縮文件。
num:num為數字1-9,代表壓縮時使用的壓縮率。1表示壓縮速度最快、壓縮率最小,9代表壓縮速度最慢、壓縮率最大。如果不使用此選項,則默認使用壓縮率6.
二、使用bzip2壓縮文件
與gzip等大多數壓縮工具相比,bzip2的壓縮率更高,但速度相對較慢。
【命令格式】
bzip2 [option] filename
【常用選項】
k:壓縮、解壓縮完成之后,保留原始文件。
d:執行解壓縮任務。
t:測試壓縮文件的完整性。
num:num為數字1-9,表示壓縮率級別。其中1表示壓縮率最低、速度最快,9表示壓縮率最高、速度最慢。
v:執行時顯示執行的詳細信息。
三、整盤備份命令dd
dd是一個非常特殊的命令,其作用是從標準輸入或文件中讀取數據,并按指定的格式轉換數據,然后輸出。dd命令非常像Windows系統中的分區、磁盤備份工具Ghost。使用這個命令可以備份整個分區、磁盤,并且備份時可以不必關閉系統、卸載文件系統。
【命令格式】
dd <option>
dd命令不需要參數,所有參數都通過選項指定。
【常用選項】
if:指定要讀取的文件,默認為標準輸入。
of:指定要輸出的文件,默認為標準輸出。
ibs:指定讀取數據時的塊大小,默認為512字節。
obs:指定輸出數據時的塊大小,默認為512字節。
bs:將讀取、輸出時的塊大小一起指定。
count:指定讀取的區塊數。
【用法示例】
管理員在許多時候都要使用到這個命令,其目的可能是需要備份一個分區、硬盤和軟盤等存儲設備中的內容,也可能是需要驗證某個設置,需要產生一個指定大小的文件等。
(1)有時候管理員需要一個類似于Ghost的工具,備份一個分區甚至是一個磁盤,這時可以使用dd命令來完成。
例如要備份磁盤sda:
[root@localhost test]# dd if=/dev/sda of=/mnt/backup/backup_sda.dd
上面的示例中,dd命令從設備/dev/sda中讀取數據,并存放到文件/backup_sda.dd中。
這樣磁盤sda中的所有數據都被保存到backup_sda.dd文件內,這些數據包括了磁盤分區表及所有分區和數據等內容。由于磁盤存儲的數據可能會有很多,因此命令可能會需要很長時間。
提示:將磁盤備份到文件中時,建議文件名以.dd結尾,以便于文件使用者識別。
(2)恢復磁盤時,只需要將讀取和寫入的文件進行調換即可。例如要將從/dev/sda中備份的數據恢復到一個新的設備/dev/sdb中:
[root@localhost ~]# dd if=/mnt/backup/backup_sda.dd of=/dev/sdb
dd命令從文件/mnt/backup/backup_sda.dd中讀取數據,并將這些數據寫入磁盤sdb中。命令執行完成之后設備sda和sdb中的數據將完全相同。
(3)許多時候可能希望能夠在備份磁盤分區的同時,壓縮備份數據以節省空間,這是可以與gzip等壓縮命令一起使用。
例如備份磁盤sda并使用gzip壓縮備份數據:
[root@localhost ~]# dd if=/dev/sda | gzip >/mnt/backup/backup_sda.dd.gz
上面示例命令中,命令dd首先從磁盤sda中讀取數據,并將這些數據通過管道交給第2個命令gzip。gzip將這些數據壓縮之后,通過重定向的方式寫入文件backup_sda.dd.gz中。
(4)如果要將使用gzip壓縮后的數據恢復到磁盤sdb中,可以反向使用以上命令:
[root@localhost ~]# gzip -dc /mnt/backup/backup_sda.dd.gz | dd of=/dev/sdb
(5)如果兩塊磁盤都連接到系統,可以直接將一個磁盤中的內容整盤拷貝到另一個磁盤中,將選項if和of的參數換成需要使用的參數即可。
例如要將磁盤sda中的所有數據拷貝到磁盤sdb中:
[root@localhost ~]# dd if=/dev/sda of=/dev/sdb
(6)利用dd命令能直接讀寫塊設備,還可以制作光盤鏡像。例如為當前光驅中的光盤制作光盤鏡像,并將 光盤鏡像命名為linux.iso:
[root@localhost ~]# dd if=/dev/cdrom of=/mnt/backup/linux.iso
(7)許多時候管理員需要產生一個指定大小的文件,其目的可能是驗證一些配置(例如磁盤配額),也可能是測試磁盤、陣列的讀寫速度等。這是可以使用dd命令的bs和count選項,指定塊大小和塊數量。
例如產生一個5GB的文件放置在當前目錄下,并將其命名為test.5G:
[root@localhost ~]# dd if=/dev/zero of=test.5G bs=1M count=5120
注意:在上面的命令中用到了一個設備文件/dev/zero,這是一個非常特殊的設備文件,zero設備的功能是無限制地提供數據0.
(8)許多時候,磁盤上存放了相當機密的數據,當磁盤報廢或者做其他用途時,刪除數據和格式化磁盤都無法保證這些數據不被泄露。此時可以使用隨機數據填充磁盤的方式銷毀磁盤上的數據。
例如要銷毀磁盤sdc上的數據:
[root@localhost ~]# dd if=/dev/urandom of=/dev/sdc
(9)在Linux系統中,要備份磁盤的分區表,可以不用其他工具,使用dd命令就可以輕松完成這個工作:
[root@localhost ~]# dd if=/dev/sda of=image count=1 bs=512
上面這個命令,會備份磁盤/dev/sda的前512個字節(分區表保存在磁盤的前512字節中),保存到當前目錄下并命名為image。
(10)要從已經備份的文件image中恢復分區表:
[root@localhost ~]# dd if=image of=/dev/sda
注意:雖然dd命令備份數據時允許硬盤正在使用,但通常應該停止使用磁盤或以只讀方式掛載磁盤,以免出現文件不一致的情況。
總結
以上是生活随笔為你收集整理的压缩工具和整盘备份工具dd的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#秒转换小时
- 下一篇: 打开另外一个页面_如何在PDF页面中插入