定时监测服务器磁盘是否超过阈值,超过就删除docker 镜像

达到指定百分比 删除镜像脚本

df -h 查找到 内存占用信息 ,得到的 文件系统名称是 overlay的,Use% 达到70就进行删除docker 镜像

shell 复制代码
#!/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" ]; then
    echo "磁盘使用已超过阈值 $THRESHOLD%. 正在删除未使用的Docker镜像..."
    
    # 删除未使用的Docker镜像
    docker image prune -a -f
    #docker rmi $(docker images -q)

    echo "未使用的Docker镜像已删除."
    
    # 退出循环,因为一次清理应该足以释放空间
    break
  fi
done

设置定时任务

crontab 设置定时任务:

shell 复制代码
crontab -e

每周一早上八点 执行这个脚本:

shell 复制代码
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 表示在每周一的早上八点执行任务。

相关推荐
A-刘晨阳12 分钟前
同一句需求优化前后差多少?Prompt Optimizer先整理提示词,再用同一个模型直接对比结果
运维·prompt·cpolar
开开心心就好26 分钟前
证件照排版打印工具,免费可自定义尺寸
服务器·开发语言·算法·随机森林·pdf·音视频·散列表
李纲明31 分钟前
WordPress 结账页一直转圈不跳支付:AJAX、缓存排除、支付回调和 REST 怎么逐层核
运维·ajax·缓存·wordpress·woocommerce·devdiy·结账
fengkai454532 分钟前
7、Kubernetes的Ingress&Network&Scheduler
运维·kubernetes·k8s·ingress·network·scheduler
码农客栈33 分钟前
mt7601u移植
linux·运维·服务器
可涵不会debug36 分钟前
超级马里奥常驻极空间以后怎么打开?Docker运行游戏页面,手机电脑都能从浏览器进入
游戏·docker·智能手机
2601_949847751 小时前
io-ts 跨端三方库仓颉适配全流程
linux·运维·ubuntu
a5986523 小时前
云手机怎么选?ARM服务器原生架构和X86模拟器差别很大
服务器·arm开发·智能手机
程序员清风11 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
打工仔折腾 AI12 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化