监视磁盘空间

手动监视磁盘空间使用情况是可行的,但是您并不希望不停地运行 df(甚至 du)来确定已使用的或可用的磁盘空间。您可以使这个过程自动化,并且当可用空间降低到一定的级别时,自动地向管理员(或者管理员组)发送电子邮件。下面的脚本用来监视磁盘空间,您可以设置警告 (warninglimit) 和紧急情况 (lowlimit) 限制,以及进行检查的文件系统的列表。

 1 #!/bin/sh
 2
 3 warninglimit=500000
 4 lowlimit=250000
 5
 6 filesystems="/export/data /export/home /"
 7
 8 for fs in $filesystems
 9 do
10 size=`df -k $fs|grep $fs|awk ‘{ print $4; }‘`
11 if [ $size -le $lowlimit ]
12 then
13 mailx -s "URGENT: Low disk space for $fs ($size)"
14 break
15 fi
16 if [ $size -le $warninglimit ]
17 then
18 mailx -s "WARNING: Low disk space for $fs ($size)"
19 fi
20 done

其中关键的一行是提取每个文件系统中空闲磁盘空间的大小:
size=`df -k $fs|grep $fs|awk ‘{ print $4; }‘`

该脚本使用 df 仅提取了要进行 grep 的行,然后使用 awk 提取数据的第 4 列,该列是空闲空间的大小。

然后,您可以根据 warninglimit/lowlimit 来检查空闲空间,并生成合适的错误。要避免系统同时发生下限和警告错误,该脚本首先检查下限,并在尝试测试警告之前使用 break 跳到循环中的下一个文件系统。

结束语

监视磁盘空间是管理员的一项重要工作,耗尽磁盘空间将可能严重地影响用户的工作,并且在严重的情况下,可能会丢失数据,或者使得系统崩溃,因为系统无法获得运行所需的磁盘空间。

使用 df,您可以确定整个文件系统的空闲空间和空间使用情况,但这只是描述了部分信息。要确定磁盘空间用于何处,您需要使用 du 工具对不同的目录进行研究。通过使用 find,您甚至可以使用 du 来查找指定用户所使用的空间。对于更加自动化的用户级磁盘使用情况和控制,配额是一个更好的选择。

时间: 2024-10-20 18:24:18

监视磁盘空间的相关文章

Linux中删除文件,磁盘空间未释放问题追踪

在客户使用我们产品后,发现一个问题:在删除了文件后,磁盘空间却没有释放.是有进程在打开这个文件,还是其他情况?我们一起来看看一下两个场景 一. 场景一:进程打开此文件 当一个文件正在被一个进程使用时,用户删除此文件,文件只会从目录结构中删除,但并没有从磁盘删除.当使用这个文件的进程结束后,文件才会真正的从磁盘删除,释放占有的空间. 我们发现剩余磁盘空间比较少时,回去删除一些大的临时文件或者log文件,如果删除之后会发现磁盘空间并未减少,那么可以通过"lsof"命令去查看正在使用该文件的

Linux中VMware虚拟机增加磁盘空间的扩容操作

用VMwareware虚拟机安装的Cent OS 7系统剩余空间不足,造成软件无法正常安装.如果重新装一遍系统就需要重新配置好开发环境和软件的安装配置.通过上网搜集的资料,结合自己的实践,总结了如下扩大硬盘空间的详细步骤,希望对大家有帮助. (1)打开VMware,选择Edit Virtual mache settings,Utilities下拉框中找到Expand如下图 (2)将磁盘空间扩大到70G,点击Expand即可,随后进入一个较长的Expand过程,完成后这是新的空间已经增加,但lin

“no space left on device”(磁盘空间不足)问题(续)

1.问题描述 no space left on device(磁盘空间不足) 2.文件删除原理 (1)硬链接数为0(所有硬链接均被删除) (2)进程调用数为0(没有进程在调度文件) 3.原因分析 硬链接数为0,进程调度数不为0 4.过程演示 (1)创建大文件 [[email protected] ~]# seq 500000000 > /var/log/messages (2)查看磁盘使用情况 [[email protected] ~]# df -h Filesystem     Size  U

No space left on device 解决Linux系统磁盘空间满的办法

由于当初安装系统时设计不合理,有些分区分的过小,以及网络通讯故障等造成日志文件迅速增长等其他原因都可能表现为磁盘空间满,造成无法读写磁盘,应用程序无法执行等. (以/home空间满为例): 1. 定期对重要文件系统扫描,并作对比,分析那些文件经常读写 #ls –lR /home >;files.txt #diff filesold.txt files.txt 通过分析预测空间的增长情况,同时可以考虑对不经常读写文件进行压缩,以减少占用空间. 2. 查看空间满的文件系统的inodes消耗 #df

从Linux系统磁盘空间不足引发的Zabbix服务器数据库迁移

之前一直没有去关心Zabbbix服务器存储空间问题,最近Zabbix报警提示/根目录磁盘空间不足,于是登录Zabbix看了一下,发现根目录只有1.3MB了,这怎么办了?第一个想到的是扩展根目录,结果发现不是用的LVM,采用的是标准的,心想也还可以救,就和Windows一样将D盘.E盘删除,再将D盘的空间扩展给C盘就OK啊,于是开始着手操作(注意提前备份虚拟机,最好做一个快照,出问题了好恢复) [[email protected] /]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /

磁盘空间未释放异常案例

其实也谈不上异常,就是syslog-ng打开一个打日志文件准备传输时,该日志被logrotate给轮转了,gzip压缩后,文件被 deleted,但syslog-ng中文件句柄还在,结果导致磁盘空间一直未释放.有经验的SA发现磁盘空间实际使用和df显示的不一致时,一般都会用lsof检查是否有大文件标记为deleted,把该进程杀掉或重启下就可以了. --------------------------------------分割线---------------------------------

Windows Server 服务器磁盘空间不足怎么办

用户的Lync服务器只有80G空间,D盘最近刚加的,今天发现C盘大小竟然就剩几百MB了,桌面上看到有些Log文件,全部删除了,好不容易腾出三个G的空间,起码今天下班之前不会出现什么大的问题,我跟用户说你们加磁盘空间吧,用户的意思就是不行,你得给我把空间删除出来...说干就干 ===解决方法 1)我在C盘中Ctrl+A,查看属性发现C盘其实才占用了47.7GB,算上剩余的3.57GB,一共51GB 剩余将近30GB的空间被什么占用了... 2)计算机属性---更改设置---高级---性能设置 这个

VMwave下Ubuntu扩展磁盘空间

VMwave下Ubuntu扩展磁盘空间 Ubuntu原预装磁盘空间20G,随着系统安装软件越来越多,空间慢慢不够用. 打算安装DB2,许扩展磁盘空间. 环境: No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 11.04 Release: 11.04 Codename: natty 第一步:打开vmware.选择虚拟机->设置 第二步:启动Ubuntu,打开终端或者使用xshell连接Ubuntu.

Linux磁盘空间被未知资源耗尽【转】

Linux磁盘空间被未知资源耗尽 在linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会释放这个文件的磁盘空间,最后造成磁盘空间占用100%,整个系统无法正常运行.这种情况下,通过df和du命令查找的磁盘空间,两者是无法匹配的,可能df显示磁盘100%,而du查找目录的磁盘容量占用却很小. 遇到这种情况,基本可以断定是某些大文件被某些程序占用了,并且这些大文件已经被删除了,但是对应的文件句柄没有被某些程序关闭