将服务器日志归档到阿里云OSS的脚本

将服务器日志归档到阿里云OSS的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/bash
#Descripion: upload trade center logs file to Aliyun OSS
#Author: HuangYong
#date: 2019-04-29

buket=mg-tradecenter-log-archived #OSS Buket name
year=$(date +%Y) #年份
year_dir=log-archived-${year} #OSS年份目录
month=$(date +%m) #月份
ossutil64_dir=/home/work

yesterday_logtime=$(date +%Y%m%d --date="-1 day") #upload yeasterday logfile
log_dir=/data/logs/apps/trade-center/trade-center # tradecenter log file parent dir
log_prefix="trade-center.log" #logfile prefix
hostname=api1 #tradecenter server

#判断是否安装ossutil64工具
[ ! -f "/home/work/ossutil64" ] && echo "请安装ossutil64软件" && exit 1

#判断年份目录是否存在,不存在则创建
if ! `${ossutil64_dir}/ossutil64 ls oss://${buket}/${year_dir}/ > /dev/null 2>&1`;then
${ossutil64_dir}/ossutil64 mkdir oss://${buket}/${year_dir}/
fi

#判断月份目录是否存在,不存在则创建
if ! `${ossutil64_dir}/ossutil64 ls oss://${buket}/${year_dir}/${month} > /dev/null 2>&1`;then
${ossutil64_dir}/ossutil64 mkdir oss://${buket}/${year_dir}/${month}/
fi


# 打包昨天的日志文件

cd $log_dir

for log_type in "debug" "error" "netrcd-admin" "netrcd-callback" "netrcd-gateway" "netrcd-notify" "script";do

log_name="${log_prefix}.${log_type}.$yesterday_logtime"
if [ -f $log_name ];then
tar -zc -f ${hostname}.${log_name}.tar.gz $log_name
fi
done

# 上传文件到OSS

${ossutil64_dir}/ossutil64 cp $log_dir --include="${hostname}*.tar.gz" -r -f oss://${buket}/${year_dir}/${month}/

#上传完成后,删除打包的日志
[ $? == 0 ] && rm -f $log_dir/${hostname}*

本文标题:将服务器日志归档到阿里云OSS的脚本

文章作者:Jesse

发布时间:2020年06月30日 - 00:06

最后更新:2020年06月30日 - 21:06

原始链接:https://jesse.top/2020/06/30/Linux-Basic/shell&shell脚本/将服务器日志归档到阿里云OSS的脚本/

许可协议: 禁止商业用途 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!