使用Shell脚本,实现容器到期后,自动停止,并按照停止容器的端口号,建立相同的容器并启动容器。
#!/bin/bash
#获取当前系统的日期,以 20221222 形式
sys_date=`date +%Y%m%d`
#设置重置的格式化时间,以2022-12-22 10:51:00 形式
reset_date=`date "+%Y-%m-%d %H:%M:%S"`
#定义函数stop,实现记录容器端口号,停止容器,删除容器,之后重新建立容器,将重置信息写入日志的操作
stop(){port=$(docker ps | grep $name | awk -F ':' '{print $2}' | awk -F '-' '{print $1}')docker stop $namedocker rm $namedocker run -it -p $port:1234/udp --privileged=true --name=$name --restart=always -d centos7echo "$name需要重新配置,重置时间:$reset_date" >>/data/reset_server.txt
}
#循环读取/data/add.txt文档里面的内容,判断容器是否到期需要重置
for i in $(cat /data/add.txt)
do#记录容器名称server=`echo $i | awk -F ':' '{print $1}'`#记录到期时间ex_date=`echo $i | awk -F ':' '{print $2}'`#判断是否到期,如果到期,执行stop函数if [ $sys_date -eq "$ex_date" ]thenname=($server)stopfi
done
/data/add.txt文档信息:
centos1:20221222
centos2:20221222
centos3:20221223
上一篇:程序基础:正则表达式