小黑日记-Linux下设置定时删除容器镜像执行脚本

前言

入职一个多月,最近接到一个需求,需要在Linux系统下实现定期删除指定容器的功能。第一次接触Linux系统编程有点手忙脚乱。经过一下午的查找资料,通过面向百度编程,终于完成了任务。现总结记录一下。实现该功能由两部分工作组成:1.删除容器shell脚本文件的编写。2.定时器的设置。

一.脚本的编写

在Linux环境下,脚本文件编写方式不同于windows环境,使用命令行的形式编写。首先新建一个shell脚本,如新建一个名为delete.sh的脚本,该脚本实现定期删除主机中名为nol cmcs scip项目的镜像。

  1. 利用touch命令建立名为delete的空白.sh文件:touch delete.sh
  2. 利用vim命令进入编辑模式在.sh脚本中输入代码:vim delete.sh
  3. 进入编辑模式还需要选择操作,输入代码选用i命令,此时进入插入模式,输入我们的代码:
docker images|grep nol|awk '{print $3}'|xargs docker rmi -f
docker images|grep cmcs|awk '{print $3}'|xargs docker rmi -f
docker images|grep scip|awk '{print $3}'|xargs docker rmi -f
  1. 编辑完成点击Esc键退出编辑模式,输入号进入文本退出前的设置,依次输入wq,点击回车,表示保存输入文本退出编辑模式。利用cat命令可以查看.sh中的内容:cat delete.sh

  2. 利用./执行.sh文件:注意直接执行会显示权限不够,所以需要先利用chmod命令赋予执行权限:chmod +x delete.sh,再执行./delete.sh

    这时shell脚本文件就建立好了,如何实现定时功能,就要利用crontab设置周期性执行该脚本。

二.定时器的设置

crontab是周期性设置执行任务的工具。通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。利用crontab -h查看是否内置crontab工具,如果显示crontab语法信息,则说明已安装。否则利用yum -y install crontabs命令安装。利用crontab命令设置定时执行delete文件。

  1. 定时执行代码格式:

*  *  *  *  * command

分 时 日 月  周  命令

minute(分)可以设置0-59分
hour(小时)可以设置0-23小时
day of month(日期)可以设置1-31号
month(月份):可以设置1-12月
day of week(周):可以设置0-7星期几,其中0和7都代表星期天,或者我们也可以使用名称来表示星期天到星期一,例如sun表示星期天,mon表示星期一等等
命令:指我们要执行的文件如delete.sh文件(需要填写完整路径):

  1. 利用crontab命令进入新建计划模式crontab -e
  2. 和编辑脚本文件类似,点击i进入插入模型,输入以下字符:
1 1 * * */root/./delete.sh

并按Esc键退出插入模式,输入回车进入退出选取方式模式,退出方式输入wq,保存退出。

  1. 查看已经建立的计划列表利用crontab -l命令。

以上两步,实现了在Linux系统下,周期性删除nol cmcs scip三个项目镜像的需求。

三.附录

参考

crontab定时任务详解
一个简单的linux下设置定时执行shell脚本的示例
Linux创建可运行shell脚本:

猜你喜欢

转载自blog.csdn.net/qq_29426863/article/details/108644834
今日推荐