美文网首页
Shell脚本完成用户磁盘空间监测报告

Shell脚本完成用户磁盘空间监测报告

作者: 刘小白DOER | 来源:发表于2021-02-15 21:32 被阅读0次

    笔者在文章-四种方法查看树莓派CPU温度中,用python查看树莓派温度和状态的程序,其中有一段python程序读取磁盘空间os.popen("df -h /") ,df -h /读取整个磁盘的使用情况。

    这一次笔者在书籍上看到一个脚本,颇具意义。脚本完成磁盘检查,并打印出使用量位居前十位,生成报告rpt。命令 du -hs /root  可以查看目录的整体使用情况,du -hs /root/*可以查看目录一级的整体使用情况,输出统计信息,快速定位问题根源。

    同时关于df与du,df是显示磁盘分区上可以使用的磁盘空间,du是显示已经使用的空间。

    为了找出占用磁盘空间最多的目录,可以使用sort命令来排序,-r是允许数字排序,-n是逆序排序。    

     du -hs /root/* | sort -rn

       sed编辑器可以对输出内容进行赛选,只选择前四行内容,并添加行号。最后使用gawk格式化输出。

du -hs /root/* | sort -rn | sed '{5,$D; =}' | sed 'N; s/\n/ /' | awk '{printf $1 ":" "\t" $2 "\t" $3 "\n"}'

    现在来看看脚本big_users.sh,脚本循环检测CHECK_DIRECTORIES中的目录,然后执行  du -S $DIR_CHECK 打印格式化输出磁盘使用情况。exec命令是打开文件outfilename作为stdout,即输出重定向。

#!/bin/bash

#

# Big_Users - Find big disk space users in various directories

###############################################################

# Parameters for Script

#

CHECK_DIRECTORIES=" /var  /root"  #Directories to check

#

############## Main Script #################################

#

DATE=$(date '+%m%d%y')              #Date for report file

#

exec > disk_space_$DATE.rpt          #Make report file STDOUT

#

echo "Top Ten Disk Space Usage"      #Report header

echo "for $CHECK_DIRECTORIES Directories"

#

for DIR_CHECK in $CHECK_DIRECTORIES  #Loop to du directories

do

  echo ""

  echo "The $DIR_CHECK Directory:"  #Directory header

#

# Create a listing of top ten disk space users in this dir

  du -S $DIR_CHECK 2>/dev/null |

  sort -rn |

  sed '{11,$D; =}' |

  sed 'N; s/\n/ /' |

  gawk '{printf $1 ":" "\t" $2  "\t" $3 "\n"}'

#

done                                #End of loop

#

exit

运行 ./big_users.sh后生成的报告:

相关文章

  • Shell脚本完成用户磁盘空间监测报告

    笔者在文章-四种方法查看树莓派CPU温度中,用python查看树莓派温度和状态的程序,其中有一段python程...

  • shell脚本基础

    编写脚本 编程基础 shell脚本 创建shell脚本 变量 运算 测试 配置用户的环境

  • Linux shell脚本格式

    脚本格式 创建一个shell 脚本 执行一个shell 脚本 从用户输入接收参数 执行脚本并接收参数

  • Shell脚本函数的定义和传参

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。项目开发中利用Shell脚本可以很方...

  • shell(六)

    Shell 函数 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的...

  • 2016.09.07 Linux shell脚本实战技术

    Linux shell脚本实战技术 一、shell介绍 shell是一个命令解释器,处于内核和用户之间,负责把用户...

  • 宝塔crontab使用笔记!

    Shell脚本 选择Shell脚本,执行周期设置每月17日9时0分,脚本内容是使用微信消息模板批量推送,用户数据太...

  • shell脚本切换用户执行并执行后续操作

    实现shell脚本切换用户并执行后续操作,需要使用expect脚本(或shell调用expect),如下为一个简单...

  • Linux Shell:Shell脚本常用语法整理

    摘要:Linux,Shell脚本 Shell 是一个用 C语言编写的程序,它是用户使用 Linux 的桥梁,用户通...

  • Shell 函数

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。 shell中函数的定义格式如下: ...

网友评论

      本文标题:Shell脚本完成用户磁盘空间监测报告

      本文链接:https://www.haomeiwen.com/subject/ziwpxltx.html