access日志通过OSSutil自动上传OSS归档

下载OSSUtil工具

OSSUTIL官方下载

根据操作系统选择相应的binary或者压缩包下载后,运行相应的binary(如果binary为不可执行文件,请给binary增加可执行权限:chmod 755 ossutil),即:

linux系统下:

./ossutil

配置ossutil

这里使用交互式配置ossutil

$./ossutil config -L ch	该命令创建将一个配置文件,在其中存储配置信息。

请输入配置文件路径(默认为:/home/admin/.ossutilconfig,回车将使用默认路径。如果用户设置为其它路径,在使用命令时需要将--config-file选项设置为该路径):

输入EndPoint、AK、SK等信息后完成配置。

测试简单的上传功能

假设需要将 /home/ubuntu/testfile.dat 上传到OSS的 test BUCKET的 /test/testfile.dat,那么对应的上传命令为:

./ossutil cp /home/ubuntu/testfile.dat oss://test/log/test/testfile.dat

假如配置文件不在默认路径下,需要添加配置文件的参数,假设配置文件位于:/home/ubuntu/ossutil/ossconfig.dat

./ossutil cp /home/ubuntu/testfile.dat oss://test/log/test/testfile.dat --config-file /home/ubuntu/ossutil/ossconfig.dat

编写上传脚本

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
#!/bin/bash
DATESTR=`date +%Y-%m-%d --date="-1 day"`
MONTHSTR=`date +%Y%m --date="-1 day"`
OSSUTILPATH=/home/ubuntu/ossutil/ossutil
OSSCONFIGPATH=/home/ubuntu/ossutil/.ossutilconfig
DELETEFILE=true
OSSPATH=oss://acclog/gateway/app1/${MONTHSTR}/
FILEPATH=/home/ubuntu/apps/apache-tomcat-7.0.76/logs/localhost_access_log.${DATESTR}.txt
UPLOADCMD=${OSSUTILPATH}' cp '${FILEPATH}' '${OSSPATH}' --config-file '$OSSCONFIGPATH
if [[ ! -f "$FILEPATH" ]]; then
echo "文件不存在,任务结束"$FILEPATH
else
echo '文件存在,开始执行文件上传任务'
echo '执行命令 '$UPLOADCMD
$UPLOADCMD
echo '文件上传完成'
if [[ $DELETEFILE ]];then
echo '删除文件'$FILEPATH
rm $FILEPATH
else
echo '不需要删除原始文件'
fi
fi
function deletefile(){
DELETEFILE=$1
if [[ -f "$DELETEFILE" ]]; then
echo '删除文件'$DELETEFILE
rm $DELETEFILE
fi
}
deletefile /home/ubuntu/apps/apache-tomcat-7.0.76/logs/localhost.${DATESTR}.log
deletefile /home/ubuntu/apps/apache-tomcat-7.0.76/logs/host-manager.${DATESTR}.log
deletefile /home/ubuntu/apps/apache-tomcat-7.0.76/logs/catalina.${DATESTR}.log
exit

设置crontab

crontab -e

0 8 * * * bash /home/ubuntu/ossutil/uploadoss.bash >> /home/ubuntu/ossutil/upload.log