某天上午服务器出现卡顿特别严重,页面加载速度奇慢,而且某些页面刷新出现404的问题,就连服务器的tab命令的自动提示都出现了问题,楼主费了九牛二虎之力,根据服务器排查发现,服务器数据盘出现100%被占用的问题,致使该问题出现的缘由是,Jenkins每次部署服务器的时候,都会自动将上一次的war备份,因为开发阶段的频繁部署,最终硬盘被占满,便出现上述描述的状况。linux
根据Google爸爸的提示,楼主找到了下面的命令,shell
find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;
复制代码
实例命令:bash
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
复制代码
说明:服务器
将/opt/soft/log/目录下全部30天前带".log"的文件删除。ui
具体参数说明以下:spa
find:linux的查找命令,用户查找指定条件的文件; /opt/soft/log/:想要进行清理的任意目录; -mtime:标准语句写法; +30:查找30天前的文件,这里用数字表明天数; " ×.log":但愿查找的数据类型,"×.jpg"表示查找扩展名为jpg的全部文件,"×"表示查找全部文件,这个能够灵活运用,触类旁通; -exec:固定写法; rm -rf:强制删除文件,包括目录; {} ; :固定写法,一对大括号+空格++;code
解决问题的思路:开发
固然楼主固然不能傻乎乎的将备份目录下的全部文件都删除掉,这样的话,备份不就失去了意义。 因此换一下思路便有了下面的命令部署
find ${BAK_HOME} -mtime +1 -name "*:*" | wc -l
复制代码
说明:string
获取备份目录下全部一天前带":"的全部文件数量。
find ${BAK_HOME} -mtime +1 -name "*:*"
复制代码
说明:
获取备份目录下全部一天前带”:”的全部文件数量。
到了这里咱们的问题差很少就能够解决了。so,请接着往下看:
目前解决该问题的方法是在原来部署脚本中添加一段脚本,实现保留最近10次部署的备份记录,超过10次的备份记录将被删除.
逻辑很清晰,思路很明了,我就不在这里接着阐述了,谢谢你们!
#!/bin/sh
BAK_HOME="/home/saveHistoryData/iam-share-8083"
keepNum=5
fileNum=$(find ${BAK_HOME} -mtime +1 -name "*:*" | wc -l)
echo "${fileNum}"
for file in $(find ${BAK_HOME} -mtime +1 -name "*:*"); do
if test $[fileNum] -gt $[keepNum];then
rm -rf ${file}
fileNum=${fileNum}-1
echo "delete backup file"
else
echo "do no thing"
fi
done
复制代码