達到指定百分比 刪除鏡像腳本
df -h 查找到 內存占用信息 ,得到的 文件系統名稱是 overlay的,Use% 達到70就進行刪除docker 鏡像
#!/bin/bash# 設置磁盤使用閾值
THRESHOLD=70# 獲取 overlay 文件系統的磁盤使用百分比
DISK_USAGES=$(df -h | grep overlay | awk '{print $5}' | sed 's/%//')# 遍歷每個使用百分比
for USAGE in $DISK_USAGES; do# 檢查磁盤使用是否超過閾值if [ "$USAGE" -gt "$THRESHOLD" ]; thenecho "磁盤使用已超過閾值 $THRESHOLD%. 正在刪除未使用的Docker鏡像..."# 刪除未使用的Docker鏡像docker image prune -a -f#docker rmi $(docker images -q)echo "未使用的Docker鏡像已刪除."# 退出循環,因為一次清理應該足以釋放空間breakfi
done
設置定時任務
crontab
設置定時任務:
crontab -e
每周一早上八點 執行這個腳本:
00 08 * * 1 /opt/clear_docker_images.sh > /opt/clear_docker_images.log
這是一個 crontab 格式的時間表達式,用來指定計劃任務的執行時間。在這個時間表達式中:
- 第一個字段
0
表示分鐘,表示在每小時的第 0 分鐘執行任務。 - 第二個字段
8
表示小時,表示在每天的第 8 小時執行任務,即早上八點。 - 第三個字段
*
表示日期,表示每天都匹配。 - 第四個字段
*
表示月份,表示每月都匹配。 - 第五個字段
1
表示星期幾,星期天是數字 0,星期一到星期六分別是數字 1 到 6。因此1
表示每周一。
所以,這個時間表達式 0 8 * * 1
表示在每周一的早上八點執行任務。