通常docker容器都是最小化安装,不只如此系统定时器相关的服务也不存在,本身去安装也很麻烦,故此直接使用宿主机的定时器便可。linux
这一部分不论你是把定时器加在宿主机或者是容器都必需要去作的 ;docker
网上随意一搜就能够看到以下的删除模板:centos
find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;
由于本人的日志目录层级比较深 因此改良了以下:tomcat
-- /opt/auto-del-log.sh #!/bin/sh find /home/schedule_log/ -mtime -5 -type f -iname "*.log" -exec rm -rf {} \;
必定记得加可执行权限centos7
chmod +777 /opt/auto-del-log.sh
后面通过验证 其实效果是同样的! 重点就是你要去验证你的脚本有无效! 你能够这样直接输入验证.net
find /home/schedule_log/ -type f -iname "*.log" 或者 find /home/schedule_log/ -name "*.log"
若是能查出你想删除的文件那么后面就能够开始套模板了。日志
-mtime:标准语句写法; +30:查找30天前的文件,这里用数字表明天数; "*.log":但愿查找的数据类型,"*.jpg"表示查找扩展名为jpg的全部文件,"*"表示查找全部文件,这个能够灵活运用,触类旁通; -exec:固定写法; rm -rf:强制删除文件,包括目录; {} \; :固定写法,一对大括号+空格+\+;
使用docker exec 命令校验以前写的脚本是否有效 以下:code
docker exec -it tomcat8002 /opt/auto-del-log.sh
tomcat8002 : 容器名称或者IDblog
/opt/auto-del-log.sh :脚本在容器中的位置crontab
若是此命令有效那么就能够编辑定时器了 本人采用的是centos7 具体能够参看网上介绍的挺全的一篇博客以下: centos7 linux定时任务详解
crontab -e 02 4 * * * docker exec -it tomcat8002 /opt/auto-del-log.sh
接下来就OK啦!