需要 gzip 命令支持:
#!/bin/sh
tomcat_backup_dir="/打包备份目录"
tomcat_dir_list=$(ps -ef | grep -oP '(?<=-Dcatalina\.base=)[^\s]*')
#netty_dir_list=$(ps -ef | grep com.mapbar.mserver.netty \
#netty_dir_list=$(ps -ef | grep com.mapbar \
# | grep -oP '[^:]*(?=/lib/netty-\d.\d.\d.Final.jar)')
today=$(date +%Y%m%d)
function do_backup()
{
proj=$(basename $1)
src_dir=$1/logs
dst_dir=$2/$proj
echo $proj
for log_file in $src_dir/*; do
log_date=$(basename $log_file | grep -oP '\d{4}(-\d{2}){2}')
echo $log_date
if [ -n "$log_date" ] && [ ${log_date//-/} -lt $today ]; then
echo $log_file
backup_dir="$dst_dir/${log_date:0:4}/${log_date:5:2}"
if [ "${log_file##*.}" != "gz" ]; then
nice -10 gzip $log_file
log_file=$log_file.gz
fi
mkdir -p $backup_dir
mv $log_file $backup_dir
fi
done
}
for tomcat_dir in $tomcat_dir_list; do
do_backup $tomcat_dir $tomcat_backup_dir
done
本文介绍了一个用于Tomcat日志备份的Shell脚本。该脚本通过遍历指定的Tomcat目录列表,查找并压缩旧的日志文件,然后将它们归档到指定的备份目录中。备份过程按日期组织文件夹结构,并确保只备份非gz格式的日志文件。
1000

被折叠的 条评论
为什么被折叠?



