直接上脚本:
#!/bin/bash
Dir=$1
echo "需监控目录:"
echo "$Dir"
echo "$Dir目录存储写入DirSize.txt文件"
du -s $Dir > $Dir/DirSize.txt
echo "对文件赋权"
chmod 777 $Dir/DirSize.txt
echo "查看文件内容"
cat $Dir/DirSize.txt
echo "awk获取目录存储大小"
size=`awk -F ' ' '{print $1} ' $Dir/DirSize.txt `
echo "单位转换为M"
size1=` expr ${size} / 1024 / 1024 `
echo "目录大小(M):"
echo ${size1}
echo "判断大小是否超出指定值:"
if [ "$size1" -gt 4000 ];
then
echo "$Dir 路径大小超过4000M,建议清理(总存储? t)"
exit 1
else
echo "存储正常"
fi
exit 0
测试如下:
psycho@psycho:~/Code/WinShellDemo$ ls
Array DirSize.txt Loop String Virus
Condition Function Operator TopCpuList.sh
Demo Lib ServerSizeScript.sh Variable
psycho@psycho:~/Code/WinShellDemo$ ./ServerSizeScript.sh Virus/
需监控目录:
Virus/
Virus/目录存储写入DirSize.txt文件
对文件赋权
查看文件内容
12 Virus/
awk获取目录存储大小
单位转换为M
目录大小(M):
0
判断大小是否超出指定值:
存储正常
psycho@psycho:~/Code/WinShellDemo$ du -sh Virus/
12K Virus/
psycho@psycho:~/Code/WinShellDemo$ find ./ -name "*.txt" -print
./Demo/DirSize.txt
./Virus/DirSize.txt
./DirSize.txt
psycho@psycho:~/Code/WinShellDemo$ cd Virus/
psycho@psycho:~/Code/WinShellDemo/Virus$ ls
DirSize.txt test.sh virus.sh
psycho@psycho:~/Code/WinShellDemo/Virus$