是否有命令行可列出每个cpanel账号的邮件目录大小?
直接可用命令
首先使用root账号登录VPS的SSH,运行以下命令即可得到按Mail目录大小从高到低排序的cPanel账号列表:
du -sk /home/*/mail 2>/dev/null | sort -nr | awk '{split($2,path,"/"); print $1 " KB\t" path[3]}'
输出结果第一行就是Mail目录最大的cPanel账号,格式为:[大小] KB [cPanel账号名]
命令各部分作用说明
du:磁盘使用量统计工具,用于计算目录占用空间-s:仅统计目标目录的总大小,不输出子目录的占用详情-k:强制以KB为单位输出统计结果,符合你的单位要求
/home/*/mail:cPanel默认所有账号的家目录都存放在/home路径下,每个账号的所有邮件数据统一存储在/home/[账号名]/mail目录中,该路径匹配所有cPanel账号的邮件目录2>/dev/null:过滤执行过程中的错误信息(比如部分系统目录无mail目录、权限不足的报错),避免无关内容干扰最终结果|:管道符,将前一个命令的输出结果传递给后一个命令处理sort -nr:对统计结果排序-n:按照数值大小排序,避免默认的字符串排序出现100<2的错误-r:反向排序,实现从大到小排列,排名越靠前的账号邮件目录越大
awk部分:格式化输出内容,从原始路径中提取cPanel账号名,最终输出更易读的结果- 把路径按
/拆分后取第三段内容,就是/home/xxx/mail中的xxx,即cPanel账号名 - 最终输出拼接KB单位和制表符分隔,方便查看
- 把路径按
注意事项
运行该命令必须使用root权限,如果你当前登录SSH的是普通用户,先执行
sudo su -切换为root账号后再运行命令,否则会因为权限不足无法读取其他用户的家目录,导致统计结果缺失、不准确。
内容的提问来源于stack exchange,提问作者user17566801
相关产品推荐
相关产品推荐

