首页 > 代码库 > 空间管理常用工具介绍

空间管理常用工具介绍

作为运维人员,空间的管理是必修课,当然linux系统提供的关于空间管理的工具是非常多的,今天就给大家分享一些比较常用的内存空间以及磁盘空间管理工具。

一、空间占用查看工具

  1、内存空间使用状态查看工具

free [OPTION]

-m: 以MB为单位

-g: 以GB为单位


  2、挂载的文件系统占用空间信息的查看工具

df [OPTION]... [FILE]...

-H 以1000为单位

-T 文件系统类型

-h: human-readable

-i:inodes instead of blocks

-P: 以Posix兼容的格式输出


 3、查看某目录下的所有文件实际占用磁盘空间

du [OPTION]... DIR

-h: human-readable

-s: summary


二、dd命令:转换或复制文件

  (一)常用选项

dd if=/PATH/FROM/SRC of=/PATH/TO/DEST 

bs=#:block size, 复制单元大小

count=#:复制多少个bs

of=file 写到所命名的文件而不是到标准输出

if=file 从所命名文件读取而不是从标准输入

bs=size 指定块大小(既是是ibs也是obs)

ibs=size 一次读size个byte

obs=size    一次写size个byte

cbs=size    一次转化size个byte

skip=blocks 从开头忽略blocks个ibs大小的块

seek=blocks 从开头忽略blocks个obs大小的块

count=n 只拷贝n个记录


conv=conversion[,conversion...] 用指定的参数转换文件。

转换参数: 

ascii 转换 EBCDIC 为 ASCII

ebcdic 转换 ASCII 为 EBCDIC

block 转换为长度为 cbs 的记录,不足部分用空格填充。

unblock  替代cbs长度的每一行尾的空格为新行

case 把大写字符转换为小写字符

ucase 把小写字符转换为大写字符

swab 交换输入的每对字节。

noerror 出错时不停止

notrunc 不截短输出文件。

sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐


 (二)MBR备份与还原

1、备份MBR

dd if=/dev/sda of=/tmp/MBR.BAK bs=512 count=1

2、破坏MBR中的bootloader

dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446

 

3、还原MBR

dd if=/media/usb/MBR.BAK of=/dev/sda


  (三)磁盘镜像与还原

  1、将/dev/sda整盘镜像到/dev/sdb

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

2、将/dev/sda全盘数据备份到指定路径的image文件

dd if=/dev/sda of=/path/to/image

3、备份/dev/sda全盘数据,并利用gzip工具进行压缩,保存到指定路径

dd if=/dev/sda | gzip >/path/to/image.gz

4、还原备份:

dd if=/path/to/image of=/dev/sda

将备份文件还原到指定盘


gzip -dc /path/to/image.gz | dd of=/dev/sdx

将压缩的备份文件还原到指定盘


  (四)拷贝内存资料到硬盘

1、将内存里的数据拷贝到root目录下的mem.bin文件

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

2、使用光盘制作iso镜像文件

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

3、销毁磁盘数据

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

利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行


  (五)硬盘读写性能测试

     1、测试硬盘读取速度

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

通过输出的执行时间,可以得出硬盘的读取速度


      2、测试硬盘写入速度,得到最恰当的block 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

通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的写入block size


  (六)激活硬盘

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

当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的


  (七)有二进制文件 fileA,size>2K。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,请问如何实现?

dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc


同学,当你看到这儿的同时,可能回想起了liunx哲学思想的其中一条吧,那就是:liunx程序尽量实现小而美的原则。相信这一原则在今天的一文中体现的淋漓尽致吧!

本文出自 “爱情防火墙” 博客,请务必保留此出处http://183530300.blog.51cto.com/894387/1843301

空间管理常用工具介绍