定时清除docker日志

用过docker的同学可能知道,日志的大小增加的非常快,我们可以用以下脚本做定期清理.

创建一个 clear_docker_logs.sh的脚本

#!/bin/bash
echo 'input log file  size '$1  
default=20  
if [ -n "$1" ]  
then  
  default=$1
fi

max=`expr 1024 \* $default`  
echo 'current set file size '$max  
for file in ` ls /var/lib/docker/containers/*/*-json.log `  
do  
  #echo $file
  s=`du -k $file |awk '{print $1}'`
 # echo $s
  if [ $s -gt $max ]
  then
   echo 'remove'$file
   truncate -s 0 $file
   echo 'removed'$file
  fi
done  

测试是否正常

chmod +x clear_docker_logs.sh  
./clear_docker_logs.sh 20

加入到crontab中,每天2点运行

0 2 * * * yourpath/cleardocker_logs.sh 20