Linux下使用Crontab构建定时任务运行删除Docker无用镜像的shell脚本

Docker删除无用的镜像

命令为:docker image prune [OPTIONS]
OPTIONS说明:
-a或-all:删除所有未使用的映像
-f:不要提示确认,强制删除
–filter:提供过滤值,过滤标志(–filter)格式为“key = value”。如果有多个过滤器,则传递多个标志(例如–filter “foo=bar” --filter “bif=baz”)。
例如:–filter “until=1h” 指删除一小时之前的镜像

构建删除无用镜像的脚本

进入要生成脚本的目录,然后通过vim命令,构建脚本,命令如下:

vim deleteimage.sh

然后按【i】进入编辑模式,输入命令:

#!/bin/bash
docker image prune -a -f --filter "until = 1h"

然后按Esc退出编辑模式,进入命令行模式,然后按【Shift】+【;】,再输入wq按回车,保存并退出。如图:
在这里插入图片描述
然后就可以看到deleteimage.sh文件在目录中出现:
在这里插入图片描述
然后再在同样的目录下,使用vim创建一个log文件:vim log,用来接收刚才构建的shell脚本运行的日志。方便以后查看运行log

Crontab构建定时任务

一、crontab简介

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs

二、crontab命令格式

crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有:

  • 【*】 取值范围内的所有数字
  • 【/】每过多少个数字
  • 【-】从X到Z
  • 【,】散列数字

格式为:* * * * * [用户名] [命令],表示在什么时间以什么用户执行什么命令

时间段解释:
:取值范围为0~59,表示每小时的第几分钟执行该任务;
:取值范围为0~23,表示每天的第几小时执行该任务;
:取值范围为1~31,表示每个月的第几天执行该任务;
:取值范围为1~12,表示每年的第几个月执行该任务;
:取值范围为0~6,表示每周的第几天执行该任务(0代表周日)。

示例:
5 * * * * root [命令] 每小时的第5分钟以root用户执行一次命令
30 18 * * * root [命令] 指定每天下午的 6:30 以root用户执行一次命令
30 7 8 * * root [命令] 指定每月8号的7:30以root用户分执行一次命令
30 5 8 6 * root [命令] 指定每年的6月8日5:30以root用户执行一次命令
30 6 * * 0 root [命令] 指定每星期日的6:30以root用户执行一次命令
每天下午的1、2、3点的5min、15min、30min以root用户执行命令:

5,15,30 13,14,15 * * * root [命令]

三、crontab定时运行shell脚本

首先在/etc/crontab中配置下定时任务:

vim /etc/crontab

然后输入【i】进入编辑模式,如图:
在这里插入图片描述
在最后追加一行:
*/5 * * * * root /app/deleteimage.sh >>/app/log,然后退出编辑模式,保存并退出,如下图:
在这里插入图片描述
其中root,表示以root用户运行此脚本。
/app/deleteimage.sh 表示脚本的绝对路径,即根节点下app目录下deleteimage.sh脚本
/app/log 表示上面建的log文件,表示将deleteimage.sh脚本运行的日志输出到/app/log文件中。

最后,启动crond服务:systemctl start crond
至此,此服务器上每隔5分钟就会执行一次deleteimage.sh脚本,用来删除无用的镜像,当然,定时任务可以自定义间隔时间。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值