linux 内存与磁盘管理

内存和磁盘使用率查看

内存使用状况查看 free && top

如果没有使用swap(虚拟内存),在linux内存被即将占满的情况下 ,内核会随机杀死占用较大的应用/进程。

## 以兆(m)为单位显示内存情况
$ free -m
#           total        used        free      shared  buff/cache   available
#	Mem:    1838         560          76           0        1202        1094
# 	Swap:   0            0           0
#  buff/cache为缓存的内容占用内存大小(可以释放的)
#  available 表示 buff/cache 释放后还有多少内存可以使用
#  Swap 交换分区 (虚拟内存)

磁盘使用状况查看

fdisk

参考:fdisk命令
fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣
语法:fdisk(选项)(参数)

选项:
-b<分区大小>:指定每个分区的大小;
-l:列出指定的外围设备的分区表状况;
-s<分区编号>:将指定的分区大小输出到标准输出上,单位为区块;
-u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址;
-v:显示版本信息。

df

参考:df命令
df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:df(选项)(参数)

选项:
-a或--all:包含全部的文件系统;
--block-size=<区块大小>:以指定的区块大小来显示区块数目;
-h或--human-readable:以可读性较高的方式来显示信息;
-H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
-i或--inodes:显示inode的信息;
-k或--kilobytes:指定区块大小为1024字节;
-l或--local:仅显示本地端的文件系统;
-m或--megabytes:指定区块大小为1048576字节;
--no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-P或--portability:使用POSIX的输出格式;
--sync:在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
-T或--print-type:显示文件系统的类型;
-x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;
--help:显示帮助;
--version:显示版本信息。

du

du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。
语法:du [选项][文件]

选项:
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件。
## 查看磁盘有哪些分区
$ ls -l /dev/sd??
## 查看磁盘分区
$ fdisk -l
## 将afile文件中的内容写入到bfile文件中(分10次写入每次4M)
$ dd if=afile bs=4M count=10 of=bfile 
## 查看磁盘分区占用情况
$ df
# 文件系统               1K-块        已用     可用 已用% 挂载点
# /dev/sda2            146294492  28244432 110498708  21% /
## 友好的展示方式
$ df -h
## /home/chri文件实际占用磁盘大小
$ du /home/chris

不停机磁盘扩容

ext4&xfx文件系统

ext4文件系统详解

ext4文件系统的基本构造

超级块、 超级块副本 、i节点(inode)、 数据块(datablock)

linux系统中每个目录或者文件都有一个对应的i节点 ,使用 ls -i命令可以查看而ext4的i节点
ext4/xfx 默认创建一个数据块的大小是4k (创建一个文件的最小占用大小是4k)

## 以查看而ext4的i节点
$ ls -i
## echo > 方式添加内容不会改变i节点(普通的修改方式会改变i节点[变为新的i节点])
$ echo xxx > /home/chris/1.txt
## rm 删除文件/目录只是将i节点 与 数据块(datablock)的连接关系断开了,所以删除1G的文件和删除1K的文件速速是相同的(rm 删除的文件 并没有真正删除)
$ rm /home/chris/1.txt
## 将afire 和 bfire 做硬链接(afire 和 bfire指向的i节点相同)(删除其中一个不影响另外一个)
$ ln afire bfire 
# 131486 -rw-r--r-- 2 root root 16 Jun  6 11:01 1.txt
# 131486 -rw-r--r-- 2 root root 16 Jun  6 11:01 2.txt
## 将afire 和 bfire 做软链接(afire 和 bfire指向的i节点不同)(删除1.txt 3.txt的软链接失效)
$ ln -s 1.txt 3.txt
# 131486 -rw-r--r-- 2 root root 16 Jun  6 11:01 1.txt
# 131486 -rw-r--r-- 2 root root 16 Jun  6 11:01 2.txt
# 131476 lrwxrwxrwx 1 root root  5 Jun  6 11:20 3.txt -> 1.txt
##
$

Linux setfacl/getfacl命令详解

文件ACL针对特定用户指定权限的规则,比UGO规则更灵活
setfacl 设置文件访问控制列表,即ACL规则。而Acl(Access Control List)就是访问控制列表

语法: setfacl [-bkndRLP] { -m|-M|-x|-X … } file …
-m, --modify=acl 更改文件的访问控制列表
-M, --modify-file=file 从文件读取访问控制列表条目更改
-x, --remove=acl 根据文件中访问控制列表移除条目
-X, --remove-file=file 从文件读取访问控制列表条目并删除
-b, --remove-all 删除所有扩展访问控制列表条目
-k, --remove-default 移除默认访问控制列表
–set=acl 设定替换当前的文件访问控制列表
–set-file=file 从文件中读取访问控制列表条目设定
–mask 重新计算有效权限掩码
-n, --no-mask 不重新计算有效权限掩码
-d, --default 应用到默认访问控制列表的操作
-R, --recursive 递归操作子目录
-L, --logical 依照系统逻辑,跟随符号链接
-P, --physical 依照自然逻辑,不跟随符号链接
–restore=file 恢复访问控制列表,和“getfacl -R”作用相反
–test 测试模式,并不真正修改访问控制列表属性
-v, --version 显示版本并退出
-h, --help 显示本帮助信息

语法: getfacl [-aceEsRLPtpndvh] file …
-a, --access 只显示文件访问控制列表
-d, --default 只显示默认的访问控制列表
-c, --omit-header 不显示注释头
-e, --all-effective 打印所有有效的权利
-E, --no-effective 没有有效的打印没有有效的权利
-s, --skip-base 只包含基本项的跳过基文件
-R, --recursive 递归递归到子目录中
-L, --logical 依照系统逻辑,跟随符号链接
-P, --physical 依照自然逻辑,不要遵循符号链接
-t, --tabular 使用列表输出格式
-n, --numeric 打印数字用户/组标识符
-v, --version print version and exit

## 查看afile的控制列表
$ getfacl afile
# 结果:
#	# file: 2.txt
#	# owner: root
#	# group: root
# 	user::rw-
# 	group::r--
# 	other::r--
## 给chris用户赋予afile文件的读写权限(+号表示额外赋予的权限)
$ setfacl -m u:chris:rw afile
#  结果:
# -rw-r--r--+ 1 root root 16 Jun  6 11:01 2.txt
## 取消赋予chris用户afile文件的执行权限
$  setfacl -x u:chris:x afile

linux RM删除文件,磁盘空间没有释放解决

磁盘的分区与挂载

现在大多使用虚拟化及docker技术进行磁盘配额划分
常用命令: fdisk、mkfs、parted、mount
大于2T使用parted进行挂载

mkfs

mkfs命令用于在设备上(通常为硬盘)创建Linux文件系统。mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。
(在特定的分区建立Linux文件系统)
语法:mkfs(选项)(参数)

选项:
	fs:指定建立文件系统时的参数;
	-t<文件系统类型>:指定要建立何种文件系统;
	-v:显示版本信息与详细的使用方法;
	-V:显示简要的使用方法;
	-c:在制做档案系统前,检查该partition是否有坏轨。
参数:
文件系统:指定要创建的文件系统对应的设备文件名;
块数:指定文件系统的磁盘块数。		、
## 在/dev/sdc 下建立分区(问答式)
$ fdisk /dev/sdc
## 查看mkfs支持的文件系统格式
$ mkfs.
## 在/dev/sdc1 分区上建立ext4文件系统
$ mkfs.ext4 /dev/sdc1 

mount

mount命令用于加载文件系统到指定的加载点。此命令的最常用于挂载cdrom,使我们可以访问cdrom中的数据,因为你将光盘插入cdrom中,Linux并不会自动挂载,必须使用Linux mount命令来手动完成挂载。

语法:mount(选项)(参数)

选项:
-V:显示程序版本;
-l:显示已加载的文件系统列表;
-h:显示帮助信息并退出;
-v:冗长模式,输出指令执行的详细信息;
-n:加载没有写入文件“/etc/mtab”中的文件系统;
-r:将文件系统加载为只读模式;
-a:加载文件“/etc/fstab”中描述的所有文件系统。
-t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
参数:
设备文件名:指定要加载的文件系统对应的设备名;
加载点:指定加载点目录。
## 创建目录
$ mkdir /mnt/sdc1
## 通常不用指定
$ mount -t ext4  /dev/dec1   /mnt/sdc1
$ mount -t auto /dev/dec1   /mnt/sdc1
##  将分区/dev/dec1 挂载到/mnt/sdc1目下(对/mnt/sdc1读写数据都会落到/dev/dec1下 )
$ mount /dev/dec1   /mnt/sdc1

用户磁盘配额

xfs文件系统的用户磁盘配额 quota
mkfs.xfs/dev/sdb1
mkdir/mnt/disk1
mount-o uquota,gquota/dev/sdb1/mnt/disk1
chmod 1777/mnt/disk1
xfs_quota-x-c’report-ugibh’/mnt/disk1
xfs_quota-x-c’limit-u isoft=5 ihard=10 user1’/mnt/disk1

交换分区(虚拟内存)的查看与创建

软件RAID的使用

逻辑卷管理

系统综合状态查看

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值