定时备份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

 

posted @ 2024-03-22 10:35  yanglei.xyz  阅读(47)  评论(0编辑  收藏  举报