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

标签: docker系列  linux  shell  docker

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脚本,用来删除无用的镜像,当然,定时任务可以自定义间隔时间。

版权声明:本文为weixin_43827693原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43827693/article/details/108117809

智能推荐

Linux中的crontab定时任务

crontab语法 进入crontab:crontab -e crontab写法:分 小时 月份中的日期 月份 星期中的日期(星期天是1) 查看当前定时任务 crontab -l 常用表达式例子...

linux的定时任务crontab

文章目录 说明 指令意义 指令示意 重要的概念的理解 说明 1 在定时任务配置文件中,请用绝对路径 2 定时任务常用来进行备份,清理缓存等 指令意义 示例: 具体意义对照英文翻译即可 指令示意 具体参考下: https://www.linuxprobe.com/linux-timed-task.html 重要的概念的理解 看了上面,其实大概就有个印象,知道要怎么去用了,但是要达到实际生产的过程,我...

linux cron crontab定时任务--重启\运行脚本等

首先判断cron是否已经安装   running说明OK,下面还显示已经重新加载,用crontab -e添加定时任务后等几秒后会自动加载。  添加定时任务 然后像vi一样编辑。加上日志便于知道有没有执行。 注意:必须绝对路径。 我的脚本内容/home/restartdocker.sh,就显示日期。   <...

创建定时任务——crontab的使用

创建定时任务——crontab的使用 Linux crontab 命令 Linux crontab 是用来定期执行程序的命令。 当安装完成操作系统之后,默认便会启动此任务调度命令。 crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 **注意:**新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cr...

通信类最新成果(17-19)

- 2019世界移动通信大会(MWC) 1、5G视频+8k画质直播,延迟低至1s,除去解码时间只需40ms。 2、华为带来了一项自动驾驶技术的安全解决方案——车路协同系统。 目前的汽车自动驾驶技术,主要依赖车辆本身的雷达和摄像头。这样感应视野就有一定的局限性。而且感应装置往往无法识别红绿灯等等指示标志。 华为的车路协同系统,相当于为汽车和驾驶员提供了一个“上帝视...

猜你喜欢

Mysql索引

一.索引相关概念 Mysql索引是什么: 1)定义:索引(Index)是帮助MySQL高效获取数据的数据结构 2)本质:索引是数据结构(排好序的快速查找数据结构) 3)位置:索引本身很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上 优点: 1)提高检索效率,降低I/O成本 2)通过索引对数据进行排序,降低数据排序成本,降低CPU消耗 缺点: 1)虽然提高了查询效率,但降低了更...

MongoDB&C++开发 (七)【转】 MongoDB性能分析

有分析MongoDB性能的需求(主要是插入和查询),查阅资料总结如下。 摘自: MongoDB与MySQL的插入查询性能测试 CSDN博客 1.MongoDB与MySQL的插入查询性能测试 1.1 机器配置&数据规模 数据规模设定在1亿条。 机器配置: CPU:Intel(R) Xeon(R) CPU E5-2620 @ 2.00GHz 内存:65954040 KB (12核CPU,64G...

C++ greater/less 和建堆

文章目录 STL中的greater<>()和less<>() Heap 定义 堆排序 构建堆 堆排序 C++的STL中堆的实现 STL中的greater<>()和less<>() 两个函数的头文件为 排序的时候,默认是从小到大;从大到小排序要使第三个参数为greater()。 建堆的时候,默认是最大堆;最小堆要使第三个参数为greater()。 ma...

dataframe,array,matrix之间的转换和存储

test是一个5行3列的dataFframe...

vue-router与keep-alive

vue-router与keep-alive keep-alive是vue内置的一个组件,可以使被包含地组件保留状态,或避免重新渲染。 router-vue是vue-router里注册地组件,我们之前学了它是一个占位符,如果 被包裹在keep-alive里边,所有路径匹配到地视图组件都会被缓存 我们知道vue生命周期,里边有很多的回调函数,当到不同的阶段会执行对应的回调函数。 那一个vue实例何时开...