Linux定时压缩打包日志文件,并移动到指定的FTP服务器上

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

 

 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值