定时备份docker日志(shell方式,可能存在丢部分日志)
创建sh文件 vi ~/backup_docker_log.sh
#!bin/sh if [ ! -d "/logs" ];then mkdir "/logs" fi cd /logs/ for file in /var/lib/docker/containers/* do if test -d $file then echo $file 是目录 for logfile in $file/*.log do if test -f $logfile then echo $logfile 开始备份 a="$(basename $logfile)" b="${a:0:12}" if [ ! -d $b ];then mkdir $b fi d="$(date -d 'yesterday' +%Y-%m-%d)" log_file="${b}_${d}.log" cp $logfile "${b}/$log_file" echo '' > $logfile tar -cvzf "${b}/${log_file}.tar.gz" "${b}/$log_file" rm "${b}/$log_file" fi done fi done
创建定时 crontab -e ,增加一行
0 0 * * * sh /root/backup_docker_log.sh