#!/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. apk文件结构

    APK (Android Package) 文件,是一个后缀名为.apk的压缩文件,APK文件中包含了一个Android应用程序的所有内容,是Android平台用于安装应用程序的文件. assets  ...

  2. 【服务器数据恢复】RAID6数据恢复案例

    服务器数据恢复环境:一台Web服务器中有一组由8块磁盘组建的raid6磁盘阵列,用来运行数据库和存储普通办公文件. 服务器故障:服务器raid6磁盘阵列中有两块硬盘离线,但是管理员没有注意到这种情况, ...

  3. 大小写字符转换【Sql Server和C#两种写法】

    案例:Var Str = "abdCnd" 如何将Str = "ABDCND"? Sql Server写法:upper(Str)   ==>  Lower ...

  4. 一加5T刷入魔趣

    0.准备工作 1.安装adb工具 2.下载twrp 3.5t系统包. 1.解锁bootloader 先进入原版系统,打开开发者选项,允许USB调试,勾选允许OEM解锁,高级重启选项 打开命令行输入: ...

  5. python翻译(一)

    有道翻译 # -*- coding: UTF-8 -*- import requests import time import random import hashlib #用于md5加密 ''' 有 ...

  6. 阿里云ECS部署单机kafka 并对外提供服务(带认证)

    1. zk配置(单机) zoo.cfg tickTime=2000initLimit=10syncLimit=5dataLogDir=/data/zookeeper/log/dataDir=/data ...

  7. vue 点击元素滚动到指定位置(滑动到指定位置对应标签自动选中)

    一:各个模块不相同情况 1.内容部分<div class="anchor"> <div v-for="(item,index) in anchors&q ...

  8. GPIO原理及配制方法

    GPIO原理及配制方法 引用地址: ARM SOC芯片的GPIO结构示意图 @@@ GPIO的八种模式 1,输入浮空模式 2,输入上拉模式 3,输入下拉模式 4,模拟输入模式 5,开漏输出模式 6,开 ...

  9. 安装ubuntu后的U盘(tf卡)恢复到之前的状态

    sudo fdisk /dev/sdasudo mkfs.vfat /dev/sda 注意: sda是 disk的名字.不同的电脑可能不一样.

  10. Unity UGUI --- Text组件预先获取文本的宽度和高度

    转自:https://blog.csdn.net/u010180140/article/details/104049958 原作者是用lua写的.明白用什么接口就好,什么语言不重要. 给定文本内容给T ...