1、通过shell脚本实现将7天前的生成的日志压缩为zip包,并将原日志删除,最后将压缩包备份到FTP服务器上。具体见下
#!/bin/sh#Copyright(c) 2019-2019
#Backup the detail files and upload, clear logs
#Version 0.1.1
#应用名服务
APPNAME=Applcation
#应用1业务日志路径
BIZLOGPATH=/home/App1/log/biz
#应用2平台日志路径
PLATLOGPATH=/home/App2/log/plat
#应用1日志文件时间(获取7天前的日期)
BIZLOGDATE=`date +%Y%m%d -d "7 day ago"`
#应用2日志文件时间(获取7天前的日期)
PLATLOGDATE=`date +%Y%m%d -d "7 day ago"`
#远端FTP服务器配置(两个应用都移动到同一个日志文件FTP服务器上)
#用户名
USER=ftp
#密码
PASSWORD=ftp1
#IP
IP=198.1.1.1
#应用1业务日志文件压缩包存放路径
BIZREMOTEPATH=/log_app/APP1
#应用2平台日志文件压缩包存放路径
PLATREMOTEPATH=/log_app/App
#将业务日志打成zip文件(其执行过程存储到detailApp.log文件中)
echo "=== Start zip logs ==="
bizzname=${APPNAME}"_"$HOSTNAME"_BIZ"$BIZLOGDATE
cd ${BIZLOGPATH}
if [ $? -eq 0 ]; then
echo "=== Success cd "${BIZLOGPATH} "==="
else
echo "=== Failed cd "${BIZLOGPATH} "==="
exit
fi
zip -o -v -r $BIZLOGPATH/$bizzname"".zip ${BIZLOGDATE}/* >> $BIZLOGPATH/detailApp.log
if [ $? -eq 0 ]; then
echo "=== Success bizzip "$bizzname"".zip "write in "$BIZLOGPATH/detailApp.log
else
echo "=== Failed bizzip "$bizzname"".zip "write in "$BIZLOGPATH/detailApp.log
exit
fi
#切换至用户主目录
cd
#移除原日志文件
echo "=== Start deleting logs ==="
rm -vrf ${BIZLOGPATH}/${BIZLOGDATE} >> $BIZLOGPATH/detailApp.log
if [ $? -eq 0 ]; then
echo "=== Success removed logs,delete log write in "$BIZLOGPATH/detailApp.log
echo "=== Start upload ==="
#进入待上传文件目录
cd ${BIZLOGPATH}
#登录ftp用户
ftp -i -n<<!>>detailApp.log
open ${IP}
user ${USER} ${PASSWORD}
cd $BIZREMOTEPATH
mkdir $BIZLOGDATE
cd $BIZLOGDATE
bin
put $bizzname.zip
close
bye
!
echo "=== Success upload ==="
else
echo "=== Failed removed logs,delete log write in "$BIZLOGPATH/detailApp.log
exit
fi
#将平台日志打成zip文件(其执行过程存储到detailApp.log文件中)
echo "=== Start platzip logs ==="
platzname=${APPNAME}"_"$HOSTNAME"_PLAT"$PLATLOGDATE
cd ${PLATLOGPATH}
if [ $? -eq 0 ]; then
echo "=== Success cd "${PLATLOGPATH} "==="
else
echo "=== Failed cd "${PLATLOGPATH} "==="
exit
fi
zip -o -v -r $PLATLOGPATH/$platzname"".zip ${PLATLOGDATE}/* >> $PLATLOGPATH/detailApp.log
if [ $? -eq 0 ]; then
echo "=== Success platzip "$platzname"".zip "write in "$PLATLOGPATH/detailApp.log
else
echo "=== Failed platzip "$platzname"".zip "write in "$PLATLOGPATH/detailApp.log
exit
fi
#切换至用户主目录
cd
#移除平台日志源文件
echo "=== Start deleting logs ==="
rm -vrf ${PLATLOGPATH}/${PLATLOGDATE} >> $PLATLOGPATH/detailApp.log
if [ $? -eq 0 ]; then
echo "=== Success removed logs,delete log write in "$PLATLOGPATH/detailApp.log
echo "=== Start upload ==="
cd ${PLATLOGPATH}
#登录ftp用户
ftp -i -n<<!>ftp.log
open ${IP}
user ${USER} ${PASSWORD}
cd $PLATREMOTEPATH
mkdir $PLATLOGDATE
cd $PLATLOGDATE
bin
put $platzname.zip
close
bye
!
echo "=== Success upload ==="
else
echo "=== Failed removed logs,delete log write in "$PLATLOGPATH/detailApp.log
exit
fi
2、将上面shell代码的保存成一个文件(如:clearlogs.sh)
3、通过配置Linux的定时任务每天定时执行
crontab -e
----
15 12 * * * sh clearlogs.sh