【问题标题】:How can I implement logrotate for the below condition?如何在以下情况下实现 logrotate?
【发布时间】:2017-04-19 20:29:05
【问题描述】:
我有针对不同进程的特定日志集。考虑
Log_name1.Date.0.log(当前日期最旧)----->
Log_name1.Date.1.log
Log_name1.Date.2.log
Log_name2.Date.0.log(当前日期最旧)----->
Log_name2.Date.1.log
Log_name2.Date.2.log
像这样,每天都会添加日志。现在我希望像这样实现 logrotate,特定日期的所有日志应该在 3 天后压缩在一起。即。如果存储了今天的日志,则在 3 天后,它必须自动压缩。所有不同的日志都可以压缩在一起。但每天必须有单独的tar.gz。有人可以帮忙吗?
【问题讨论】:
标签:
linux
logging
logrotate
【解决方案1】:
不确定操作系统,但您可以使用脚本创建 Cron 或 Program 任务;这是 linux 上的脚本示例:
#! /bin/sh
tipo=${PWD##*/}
bkp_dir="/home/USER/${tipo}-$(date +%Y%m%d)"
echo "BackUp From Folder: ${tipo}"
echo "Make BackUpFolder: ${bkp_dir}"
mkdir $bkp_dir
for dir in */
do
base=$(basename "$dir")
tar -zcvf "${bkp_dir}/${base}-$(date +%Y%m%d).tar.gz" "$dir/Log_name1.*.log"
done
sleep 5
clear
echo "BackUp Ready:"
ls -l $bkp_dir