1、第一个脚本: logcompress.sh
在crontab下配置脚本定时执行,由于5天内的日志需要经常查看,以便处理问题。所以该脚本每天执行一次,
打包当前时间之前第五天的日志,如当前时间为2013-08-27,脚本每天凌晨01:00执行,打包2013-08-22的日志文件。
crontab配置格式如下:
0 1 * * * cd /log/eas/all && /app/logcompress/logcompress.sh >> /log/logcompress/logcompress.log
点击(此处)折叠或打开
#! /bin/bash
name=`date +%Y-%m-%d --date='5 days ago'`;
echo `date '+%Y-%m-%d %H:%M:%S'`" 打包程序执行开始!";
echo '---'$name'日志打包开始!---';
for((i=0;i<24;i++))
do
if [ $i -lt 10 ]
then
if [ -f all.log.$name-0$i ]
then
echo "tar:all.log.$name-0$i => all.$name-0$i.tar.gz";
tar zcf all.$name-0$i.tar.gz all.log.$name-0$i;
if [ -f all.$name-0$i.tar.gz ]
then
echo "rm:all.log.$name-0$i";
rm -rf all.log.$name-0$i;
fi;
sleep 10;
fi;
else
if [ -f all.log.$name-$i ]
then
echo "tar:all.log.$name-$i => all.$name-$i.tar.gz";
tar zcf all.$name-$i.tar.gz all.log.$name-$i;
if [ -f all.$name-$i.tar.gz ]
then
echo "rm:all.log.$name-$i";
rm -rf all.log.$name-$i;
fi;
sleep 10;
fi;
fi;
done;
echo '---'$name'日志打包完成!---';
echo `date '+%Y-%m-%d %H:%M:%S'`" 打包程序执行完成!";
2、prior_logcompress.sh
该脚本用于打包历史日志文件,系统日志名称格式为:all.log.2013-08-27-14,在服务器日志目录下,手动执行该脚本。
命令格式为:./prior_logcompress.sh 2013-08-27 30 (表示打包2013-08-27之前30天的所有日志文件)
点击(此处)折叠或打开
#!/bin/bash
c_logcompress(){
name=$1;
echo '---'$name'日志打包开始!---';
for((i=0;i<24;i++))
do
if [ $i -lt 10 ]
then
if [ -f all.log.$name-0$i ]
then
echo "tar:all.log.$name-0$i => all.$name-0$i.tar.gz";
tar zcf all.$name-0$i.tar.gz all.log.$name-0$i;
if [ -f all.$name-0$i.tar.gz ]
then
echo "rm:all.log.$name-0$i";
rm -rf all.log.$name-0$i;
fi;
sleep 5;
fi;
else
if [ -f all.log.$name-$i ]
then
echo "tar:all.log.$name-$i => all.$name-$i.tar.gz";
tar zcf all.$name-$i.tar.gz all.log.$name-$i;
if [ -f all.$name-$i.tar.gz ]
then
echo "rm:all.log.$name-$i";
rm -rf all.log.$name-$i;
fi;
sleep 5;
fi;
fi;
done;
echo '---'$name'日志打包完成!---';
sleep 60;
}
c_exit(){
echo '-----------------------------';
if [ $# -lt 1 ]
then
echo `date '+%Y-%m-%d %H:%M:%S'` '打包程序执行结束!';
else
echo `date '+%Y-%m-%d %H:%M:%S'` '打包程序执行退出!';
fi
exit;
}
echo `date '+%Y-%m-%d %H:%M:%S'` '打包程序执行开始!';
echo '-----------------------------';
if [ $# -lt 1 ]
then
echo '请输入打包日志日期参数(格式如:20130701)!';
c_exit 1;
fi;
endDate='';
day='';
if [ $1 ]
then
endDate=$1;
fi;
if [ $2 ]
then
day=$2;
else
请您注册登录超级码客,加载全部码客文章内容... |