docker日志清理---定时删除
客户有一台linux虚拟机(基于centos7),业务部署在docker,docker运行的日志特别大,跟客户确认后日志无需备份,只需定时清理#!/bin/shtime=$(date "+%Y-%m-%d %H:%M:%S")echo "---------------------------------------------------------------------------"echo
客户有一台linux虚拟机(基于centos7),业务部署在docker,docker运行的日志特别大,跟客户确认后日志无需备份,只需定时清理
#!/bin/sh
time=$(date "+%Y-%m-%d %H:%M:%S")
echo "---------------------------------------------------------------------------"
echo "----- start clean docker containers logs on ${time} ----"
logs=$(find /var/lib/docker/containers -name '*-json.log' )
for log in $logs
do
du -h $log
cat /dev/null > $log
done
echo "--- end clean docker containers logs on ${time} -----"
#注释
## #!宣告本shell执行的shell解释器
#设定时间输出格式 为 年-月-日 小时:分钟:秒
#在脚本执行开始之前输出分隔符,宣告开始执行清理脚本并打印当前时间
# 查询日志文件名 find /目录 -name 模糊日志名(可通过前缀后缀匹配)
for 变量 in 所在文件或者取值范围
do(执行)
du -h $log 查看并打印出log文件大小
cat /dev/null 直接将空设备文件重定向到log 等于清空此log文件
done(脚本完成)
#####宣告执行完成docker日志清理并打印执行完成此刻时间
编辑定时任务 crontab -e
40 17 */2 * * /usr/bin/sh /usr/local/autoclear_docker_log.sh >> /usr/local/autoclear_docker_log.log
-e 编辑edit
分钟(00-59) 小时(0-23) 天(1-31) 月份(1-12)天(0-6) 默认执行的shell 脚本 >>重定向 .log日志
每两天17:40分执行脚本autoclear_docker_log.sh日志并将执行记录写入到同目录下log日志中
---systemctl restart crond 重启定时任务服务使之生效
---systemctl enable crond 将crond 加入到开机启动项
---sytemctl is-enabled crond 查询crond是否开机自启动,disable or enable
或使用查看全部系统服务grep的方式查看是否enable
---systemctl list-unit-files | grep crond
更多推荐
所有评论(0)