#!/bin/bash
#设置 一个变量代表临界值,看看是否能超过这个值,单位是MB
MAXDISKUSAGE=20000
#cut -d: -f1,3 /etc/passwd | awk -F: '$2 >99 {print $1} 代表的含义是:cut命令以 :为分隔符获取第1个字符
#和第三个字符组成新的字符串(还是以:连接的),
#然后 awk 以 :为分隔符 取出 判断条件是$2 大于 99 打印 $1 的数值 接下来进行for循环
for name in $(cut -d: -f1,3 /etc/passwd | awk -F: '$2 >99 {print $1})
do
/bin/echo -n "User $name exceeds disk quota.disk usage is:"
# find -xdev 表示:Don't descend directories on other filesystems. -xdev 确保find不会去遍历所有的
#文件系统,排除系统区域,只读源目录,可移动设备、/proc运行目录(linux系统)等类似位置。
#-ls 代表 list current file in ls -dils format on standard output.
#ls -dils -d:显示目录信息,而不是目录下的文件信息, -i:列出文件或者目录的索引节点号 -l:显示详细信息
#-s:以块大小为单位列出所有文件大小 find / /usr /var /home -xdev -user $name -type f -ls | \
awk '{ sum += $7} END {print sum / (1024*1024) "Mbytes"}' #awk "\$9 > $MAXDISKUSAGE { print \$0 } 这句话应该跟for循环连着看, 他们直接是以 | 连接的,
#而for 循环的输出语句应该是 User $name exceeds disk quota.disk usage is: sum Mbytes
#所以$9 代表的是sum值 ,只有大于20000的sum值才允许打印出来。$0 打印整个语句。
#$9 和 $0 前面的 \ 引号的意思还是转义,因为他的awk 后面接的语句用的是双引号,所以要想识别变量
#需要使用转义符识别。
done | awk "\$9 > $MAXDISKUSAGE { print \$0 }"
exit 0

------------恢复内容结束------------

【shell脚本实战】脚本#35 分析每个用户使用的磁盘空间大小的更多相关文章

  1. 系统磁盘空间/dev/xvda1占满原因分析

    由于项目原因需要定期检查磁盘空间占用情况,常用检查命令如下: 1.查看磁盘空间大小 df -lh 2.查看对应文件大小 du --max-depth=1 -h / 于一日发现在使用Flume + Ka ...

  2. Linux磁盘空间分析及清理(df、du、rm)

    1.df磁盘空间查看 df可以查看一级文件夹大小.使用比例.档案系统及其挂入点. [root@oms ~]# df -Th Filesystem Type Size Used Avail Use% M ...

  3. 面试笔试-脚本-1:使用shell脚本输出登录次数最多的用户

    原题目: 一个文本类型的文件,里面每行存放一个登陆者的IP(某些行是反复的),写一个shell脚本输出登陆次数最多的用户. 之前刚看到这个题目时,立即没有想到一行直接解决的办法,尽管知道能够先进行排序 ...

  4. 案例九:shell脚本自动创建多个新用户,并设置密码

    此脚本是用来批量创建用户并设置用户密码,在企业用非常实用. 脚本一 #!/bin/bash for name in $( seq 1 100 ) do useradd "user$name& ...

  5. Shell脚本实战:日志关键字监控+自动告警

    一个执着于技术的公众号 该程序使用场景说明:主要用于Linux服务器监控程序日志,如出现关键字异常则触发相应的动作或告警操作,通知到邮件联系人. 一.安装邮件服务 1.解压 tar -jxf mail ...

  6. 生产力工具:shell 与 Bash 脚本

    生产力工具:shell 与 Bash 脚本 作者:吴甜甜 个人博客网站: wutiantian.github.io 注意:本文只是我个人总结的学习笔记,不适合0基础人士观看. 参考内容: 王顶老师 l ...

  7. Shell编程(脚本)的经常使用命令和语句

    一些经常使用的Shell编程(脚本)命令和语句,能够满足一般需求. 接收到的命令參数: 參数个数: $# 參数值: 命令本身:$0 第一个參数:$1 第二个參数:$2 -- 退出命令: exit ec ...

  8. 03: shell简单监控脚本

    1.1 监控apache web server #! /bin/bash # apache netstat -anpt | grep 80 &> /dev/null if [ $? -e ...

  9. Bash Shell启动配置脚本的顺序

    1.Bash检查环境变量文件的方式,取决于系统运行Shell的方式,通常系统运行Shell有3种方式: )通过系统用户登陆后默认运行的Shell )非登陆交互式运行Shell )执行脚本运行非交互式S ...

  10. Shell执行将脚本里的变量打印到指定日志文件

    首先需要定位获取任务的运行日志或者报错信息,才能定位问题. 通过shell调用有些脚本的话,日志信息会打印在shell里.不过也有用户在shell里调用正常,但是到crontab调用的时候就出错并且没 ...

随机推荐

  1. vscode中配置代码片段

    首先我们需要把要配置的代码复制一下,如: 然后我们进入https://snippet-generator.app/网站, 进入网站之后就把你复制的代码粘贴到左边的框里面,然后就是代码的类型和命名了 写 ...

  2. 「postOI」Colouring Game

    题意 有 \(n\) 个格子排成一行,一开始每个格子上涂了蓝色或红色. Alice 和 Bob 用这些格子做游戏.Alice 先手,两人轮流操作: Alice 操作时,选择两个相邻的格子,其中至少要有 ...

  3. Python自动发邮件(QQ为例)

    import smtplib from email.mime.text import MIMEText from email.header import Header from email.mime. ...

  4. 2023-03-01 Error: Invalid hook call.Hooks can only be called inside of the body of a function component.

    问题描述:rn项目使用钩子useState,详细报错如下: Error: Invalid hook call. Hooks can only be called inside of the body ...

  5. 树莓派3B 查看GPU、CPU温度

    参考:How to find out Raspberry Pi GPU and ARM CPU temperature on Linux GPU温度: /opt/vc/bin/vcgencmd mea ...

  6. thirty-two(模型点击展示)react-three-fiber

    模型点击蒙版展示 点击展示目的(用户需要看见模型中更加多的内容信息) 使用技术 ThreeJs.React-three-fiber.React-three-drei.React.css 整体思路:   ...

  7. linux运维之道学习笔记

    linux常用命令 1.find命令 find / "*.log" 查找/目录下.log结尾的档案 find / -mtime -3 查找/目录下三天内被修改的档案 find / ...

  8. zabbix5.2+mysql+ubuntu20.4

    服务端 0.初始化机器 1.mysql安装 # apt-get install mysql-server # apt update 根据提示一步一步确认,要求输入的密码是创建管理员的密码 2.安装za ...

  9. mysql在windows下安装

    参考博客:https://blog.csdn.net/weixin_43423484/article/details/124408565

  10. flex height变高了

    在做移动端项目时,使用了flex布局后,所有的子项高度变成了一致 问题:在flex布局中,如何保持子项自身高度 原因: Flex 布局会默认: 把所有子项变成水平排列.默认不自动换行.让子项与其内容等 ...