我有一组Linux服务器,每个服务器都有一个带有/tmp目录的本地硬盘驱动器。有时,服务器上的/tmp目录会被填满并导致错误。我想自动化检查每个本地驱动器上的空闲空间的过程,以便在/tmp引起问题之前进行清理。是否有一种优雅的编程方法来确定Linux上磁盘上的空闲空间数量?我知道“经典”的答案是
df -h在每个服务器上(可能使用一个(分布式shell工具(如dsh ))并编写一个脚本来解析输出。许多这样的脚本可以在网上找到。。我正在寻找一种更优雅的解决方案,比如返回结构化数据的较新的磁盘实用程序,或者隐藏在/proc文件系统中的一些信息。
发布于 2013-07-31 22:25:50
DU命令使用状态函数从挂载的文件系统收集数据。安装文件系统似乎是通过查看mtab文件来确定的。
# strace du /
...
open("/etc/mtab", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=793, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6fdd497000
read(3, "/dev/mapper/vg-root / ext"..., 4096) = 793
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7f6fdd497000, 4096) = 0
stat("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
statfs("/", {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=118071114, f_bfree=115631354, f_bavail=109633684, f_files=29990912, f_ffree=29574660, f_fsid={-611634627, -1860045897}, f_namelen=255, f_frsize=4096}) = 0
...因此,如果您想连接细节,您可以快速地黑出一个调用statfs/statvfs的python (或其他什么)脚本,然后以您喜欢的任何格式提供信息。
https://serverfault.com/questions/527760
复制相似问题