【发布时间】:2021-04-16 09:07:48
【问题描述】:
我想在特定文件夹中搜索 10 个最大文件大小,如果 omscb* 文件超过阈值,它将向人们发送邮件以检查和删除这些文件。 假设如果 10 个文件中有 3 个文件从 omscb* 开始。我正在使用 AIX 。 例如 :- omscb1 5GB omscb2 7GB omscb2 3GB 和其他 7 个文件不是以 omscb 开头的。 因此,我在下面编写了脚本,但输出仅来自最后一个文件,即 omscb2 3gb,因为根据排序,它正在覆盖当前记录。请建议如何在输出中获取所有文件名。
THRESHOLD="5"
LOG=/home/log1.txt
cd /home/var/log
du -sg *|sort -r|head -10 | awk '{print $1"\t"$2}' | while read LINE; do
PERC1=`echo $LINE |awk '{print $1}'`
PERC2=`echo $LINE |awk '{print $2}'`
if [ $PERC1 -gt $THRESHOLD ] || [ "$PERC2" = omscb* ] ;then
#echo $PERC1 $PERC2 \n >> ${LOG}
fi
done
print $LOG
=============== 提前致谢。
【问题讨论】:
-
你应该安装
GNU!find;默认AIX!find的功能非常有限。
标签: if-statement awk echo aix