某天上午服務器出現卡頓特別嚴重,頁面加載速度奇慢,而且某些頁面刷新出現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
複製代碼