Mainly used to record Java, DBMS, HDFS... related learning notes
df
检查文件系统的磁盘占用情况
-选项
-a 显示所有文件系统的磁盘使用情况,包括 0 块(block)的文件系统,如/proc 文件系统。 -k 以 k 字节为单位显示。 -h 以可读性较好的方式显示。 -T 显示文件系统类型。
du
du (disk usage)命令
– 功能:统计目录(或文件)所占磁盘空间的大小
– 说明:该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024 字节)的情况。若没有给出 Names,则对当前目录进行统计。
– 选项:
-s 对每个 Names 参数只给出占用的数据块总数
-a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示 Names 中的每一个目录及其中的各子目录所占的磁盘块数。
-b 以字节为单位列出磁盘空间使用情况(系统缺省以 k 字节为单位)。
-k 以 1024 字节为单位列出磁盘空间使用情况。
-c 最后再加上一个总计(系统缺省设置)。
-l 计算所有的文件大小,对硬链接文件,则计算多次
区别 df 和 du 命令比较:
df 命令用来查看磁盘的使用情况。常用 df -ah 或者 df -h;可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力
du 可以查看文件及文件夹的大小,统计文件大小相加。du 命令用来查询档案或目录的磁盘使用空间
常用:du -sh 目录 或者 du -h 目录
常用
df -ah
du -a
# 文件大小排序
du /etc | sort -nr | more
# 查看文件夹大小
du -h --max-depth=1
#sort顾名思义是排序的。具体就不说了,这两个是比较简单的命令。
du -h --max-depth=1
du -hm --max-depth=2 | sort -n
du -hm --max-depth=2 | sort -nr | head -12
磁盘使用方式
磁盘使用的过程:识别硬盘—–>分区规划——>格式化——–>挂载使用
找到空闲的磁盘
fdisk -l
查看所有磁盘
df -h
查看目前已经挂载的磁盘
特殊说明:
1.如果 fdisk -l 和 df -h 中的磁盘大小对应不起来,说明/etc/fstab 文件的内容有误,可以修改/etc/fstab 文件,重启服务器后生效;
2.如果服务器上实际的磁盘大小和阡陌上的不一致,有可能是服务器掉盘了,可以重启服务器后再看下。
格式化空闲磁盘
例如:格式化空闲磁盘/dev/vdc
mkfs.ext4 /dev/vdc
挂载空闲磁盘
创建要挂载的文件夹
mkdir -p /home/username/data/
挂载磁盘
mount -t ext4 /dev/vdc /home/username/work/
查看磁盘是否挂载成功
df -h
如果磁盘出现在列表,说明磁盘挂载成功。
如果防止每次重启手动挂载,则需要进行相关的配置
配置如下
vim /etc/fstab
#后面追加一行:
/dev/sdb1(磁盘分区) /opt/app(挂载目录) ext4(文件格式)defaults 0 0
fdisk
fdisk 命令 用于观察硬盘实体使用情况,也可对硬盘分区。
主分区
一块盘至少有一个主分区;
主分区,也称为主磁盘分区,和扩展分区、逻辑分区一样,是一种分区类型。主分区中不能再划分其他类型的分区,因此每个主分区都相当于一个逻辑磁盘
扩展分区
逻辑分区
公式
硬盘的容量=主分区的容量+扩展分区的容量
扩展分区的容量=各个逻辑分区的容量之和
在 linux 中第一块硬盘分区为 hda 分区,主分区编号为 hda1-4,逻辑分区从 5 开始。
命令
fdisk /dev/sdb
分析:各个参数的解析
1. 输入 m 显示所有命令列示。
2. 输入 p 显示硬盘分割情形,打印分区表。
3. 输入 a 设定硬盘启动区。
4. 输入 n 设定新的硬盘分割区。
4.1. 输入 e 硬盘为[延伸]分割区(extend)。
4.2. 输入 p 硬盘为[主要]分割区(primary)。
5. 输入 t 改变硬盘分割区属性。
t:分区系统id号
L:82:linux swap
83:linux
86:NTFS window分区
6. 输入 d 删除硬盘分割区属性。
7. 输入 q 结束不存入硬盘分割区属性。
8. 输入 w 结束并写入硬盘分割区属性
注意
lsblk 查看本机所有的硬盘设备信息。
分区一般以扇区为单位。
Linux 存储数据的分区为 83。
刷新分区表命令:partprobe 命令。当硬盘的分区表被更改以后,需要将分区表的变化及时通知 Linux 内核,最好 reboot 一次,否则在访问分区时可能会找不到准确的设备。
partprobe 的成功率的是 99%以上,成功率非常高。如果刷不出来,可能分区本身是错误的,可能扇区有重叠,上一个分区用了这个扇区,下一个分区也用了这个扇区,分的时候有点问题没有发现,partprobe 就刷不出来。
因此刷不出来的时候,不一定要重启。如果是分区有问题的时候重启,会导致数据丢失,因为要先看一看这个分区是不是正常的。
补充命令:blkid。专门查看一个分区到底有没有文件系统,其实意思就是到底有没有格式化成功,
常用格式化工具。mkfs 工具集。
mkfs.文件系统类型(ext3/ext4/xfs/vfat -F 32 或者 16) 分区设备路径。
ext 和 xfs 都是 linux 的文件系统。为了兼容 windows,会选择 vfat。
mount (挂载)
umount(卸载)
配置文件/etc/fstab
记录格式:设备路径 挂载点 类型 参数 备份标记 检测顺序。
要想让 Linux 永远记住上面的过程,每次开机都不要忘记这件事情,自动挂载设备。需要将这个设备和它挂载的一些设置都写到/etc/fstab 里,这个文件是 Linux 当中专门设备开机自动挂载设备的配置文件。
vim /etc/fstab 设备路径 挂载点 类型 参数(defaults 是默认参数) 备份标记(0 是备份,1 是不备份) 检测顺序(开机的时候检测磁盘有没有坏道,0 是检测,1 是不检测) /dev/vdb /data ext4 defaults 1 1
连接地址
大致过程
#先卸载旧盘
umount /dev/vdb1
# 卸载旧磁盘如果磁盘被占用
# 查看磁盘占用情况
[root@work ~]# fuser -m /home/user/data
/home/user/data: 9968c
#kill 掉该进程
kill -9 9968
#查看是否卸载成功,如果看不到 /dev/vdb1 的信息表示卸载成功
df -h
#使用 fdisk 命令删除原来的分区并创建新分区
#部分操作系统里,修改分区后可能会重新自动挂载文件系统。建议先执行 df -h 重新查看文件系统空间和使用情况。如果文件系统重新被挂载,执行 umount [文件系统名称] 再次卸载文件系统。
#检查文件系统,并变更文件系统大小。
e2fsck -f /dev/vdb1 # 检查文件系统
resize2fs /dev/vdb1 # 变更文件系统大小
#将扩容完成的文件系统挂载到原来的挂载点
mount /dev/vdb1 /resizetest
chmod 777 /media/nfs1
df 和 du 不一致的时候(磁盘大小不一致)
安装 lsof 命令
lsof --help
#查看所有被占用的文件 但是已经执行删除命令的文件
lsof |grep deleted