通常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啦!