天天看點

磁盤檔案練習

1、dd指令

格式 dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#

常用選項:

 if=file 從所命名檔案讀取而不是從标準輸入

 of=file 寫到所命名的檔案而不是到标準輸出

 ibs=size 一次讀size個byte

 obs=size 一次寫size個byte

 bs=size block size, 指定塊大小(既是是ibs也是obs)

 cbs=size 一次轉化size個byte

 skip=blocks 從開頭忽略blocks個ibs大小的塊

 seek=blocks 從開頭忽略blocks個obs大小的塊

 count=n 複制n個bs

 conv=conversion[,conversion...] 用指定的參數轉換檔案

 conversion 轉換參數:

 ascii 轉換 EBCDIC 為 ASCII

ebcdic 轉換 ASCII 為 EBCDIC

lcase 把大寫字元轉換為小寫字元

ucase 把小寫字元轉換為大寫字元

nocreat 不建立輸出檔案

noerror 出錯時不停止

notrunc 不截短輸出檔案

sync 把每個輸入塊填充到ibs個位元組,不足部分用空(NUL)字元補齊

fdatasync 寫完成前,實體寫入輸出檔案

建立空洞檔案

磁盤檔案練習

備份整盤

dd if=/dev/sdx of=/dev/sdy

恢複檔案到指定盤

dd if=/dev/sdy of=/dev/sdx

将記憶體裡的資料拷貝到root目錄下的mem.bin檔案

dd if=/dev/mem of=/root/mem.bin bs=1024

拷貝CD光牒資料到root檔案夾下,并儲存為cdrom.iso檔案

dd if=/dev/cdrom of=/root/cdrom.iso

銷毀磁盤資料

dd if=/dev/urandom of=/dev/sda1

測試硬碟寫速度

dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000

磁盤檔案練習

測試硬碟讀速度

dd if=/root/1Gb.file bs=64k | dd of=/dev/null

磁盤檔案練習

2、建立一個2Gb的檔案系統,塊大小為2048byte 預留1%的可用空間,檔案系統ext4,卷标為test,預設有acl挂載選項,開機自動挂載

磁盤檔案練習
磁盤檔案練習

2、寫一個腳本,完成如下功能:

(1) 列出目前系統識别到的所有磁盤裝置

(2) 如磁盤數量為1,則顯示其空間使用資訊,否則,則顯示最後一個磁盤上的空間使用資訊

#!/bin/bash
Disk_node=`lsblk |grep -e "sd[a-z] " | wc -l`
if [ "$Disk_node" -eq 1 ];
   then
   fdisk -l /dev/sda
else
   fdisk -l /dev/`lsblk |grep -oe "sd[a-z] "| tail -n1`
fi