日志备份归档操作步骤

注:红色为注释说明的内容,绿色为示例内容,请以项目实际情况修改操作

 

  1. /opt/appl/assist/loggz下创建脚本,文件名logarch_project.sh,脚本内容如下:

#!/bin/bash

##今天

#TAR_DATE=`date +%Y-%m-%d`

##昨天,一般备份选择昨天,因为备份发生在凌晨昨天的日志一定是完整的

TAR_DATE=`date -d last-day +%Y-%m-%d`

##当前的时间,命名文件必须使用

TAR_TIME=`date +%H%M%S`

##定义删除文件的时间,留1-2天的日志文件方便研发或测试用来排错。

##两天前

DEL_DATE=`date -d '2 days ago' +%Y-%m-%d`

##定义日志文件的位置,server为中间件服务日志,bizlog为业务日志

SERVER_PATH=/opt/appl/olio/tomcat/log/

BIZLOG_PATH=/opt/appl/olio/tomcat/logs/olio/

##脚本执行输出日志

LOGFILE_PATH=/var/log/logarch.log

##日志输出方法

loginfo()

{

  echo "$(date "+%Y-%m-%d_%H:%M:%S") [EXCU RECORD] $1" >> $LOGFILE_PATH

}

###开始操作日志(拿olio项目的app日志举例,以下accessinterface等与此相同)

loginfo "App logfiles will be compressed."

cd $BIZLOG_PATH/app

tar zcvf olio.log-"$TAR_DATE"-"$TAR_TIME".tar.gz olio.log."$TAR_DATE"-* --remove-files >> $LOGFILE_PATH 2>&1

tar zcvf fspf-statistics.log-"$TAR_DATE"-"$TAR_TIME".tar.gz fspf-statistics.log."$TAR_DATE"-* --remove-files >> $LOGFILE_PATH 2>&1

loginfo "App logfiles Compression end."

loginfo "App logfiles,Compressed will be deleted."

 

##如果gz文件要归档在本机就不需要开启以下行,

#rm -rf olio.log-"$DEL_DATE"-* >> $LOGFILE_PATH 2>&1

#rm -rf fspf-statistics.log-"$DEL_DATE"-* >> $LOGFILE_PATH 2>&1

loginfo "Access logfiles was deleted."

 

  1. 添加定时任务

00 02 * * * /opt/appl/assist/loggz/logarch_project.sh > /dev/null 2>&1

 

 

 

  1. 同步归档文件到日志备份服务器。

在日志服务器创建脚本如下内容rsync-172.16.4.71-project.sh

#!/bin/sh

##归档文件位置变量定义

APP_IP=172.16.4.71

RYSNC_BASE=/logarch/CentLog

RSYNC_HOME=$RYSNC_BASE/$APP_IP

 

##脚本日志位置定义

LOG_BASE=/backup/rsync/log

LOG_HOME=$LOG_BASE/$APP_IP

LOG_FILE=$LOG_HOME/rsync_$(date +%Y-%m-%d)

 

if [ ! -d "$RSYNC_HOME" ]; then

  mkdir $RSYNC_HOME

fi

 

if [ ! -d "$LOG_HOME" ]; then

  mkdir $LOG_HOME

fi

##日志输出

loginfo()

{

  echo "$(date "+%Y-%m-%d_%H:%M") [ANIHC SAYS] $1" >>$LOG_FILE

}

##同步服务日志归档

##For dcqs jboss log

loginfo "==========Synchronizing DCQS JBoss log=========="

/usr/bin/rsync -arP--include "*.gz" --include="*/" --exclude "*" --password-file=/etc/rsyncd.pwd_dcqs rsync@${APP_IP}::jbslog_dcqs ${RSYNC_HOME}/dcqs/jbslog >>$LOG_FILE

loginfo "==========Synchronization done.=========="

loginfo ""

##同步业务归档文件

##for dcqs biz log

loginfo "==========Synchronizing DCQS Business log=========="

/usr/bin/rsync -arP --include "*.gz" --include="*/" --exclude "*" --password-file=/etc/rsyncd.pwd.dcqs rsync@${APP_IP}::bizlog_dcqs ${RSYNC_HOME}/dcqs/bizlog/dataCenter >> $LOG_FILE

loginfo "==========Synchronization done.=========="

loginfo ""

 

#把此脚本写入到日志备份服务器的定时任务中

00 03 * * * /xxxx/rsync-172.16.4.71-project.sh > /dev/null 2>&1

 

注意rsync 命令中的源地址也就是文件提供方rsyncd.conf中定义的模块。