码迷,mamicode.com
首页 > 其他好文 > 详细

centos记录uptime,tomcat日志切割,远程拷贝日志脚本

时间:2017-02-24 19:32:15      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:print   eval   ash   name   seq   -o   lin   pre   ror   

1.uptime日志脚本(每天记录)

#!/bin/sh

dir=/tmp/uptime_log

process=`ps -ef|grep $0|grep -v "grep" |grep -v "vim"|grep -v "ps"|wc -l`
if [ $process -gt 2 ];then
  echo $process
  exit;
fi

if [ ! -d $dir ];then
  mkdir -p $dir;
fi

while true
do
  current_time=`date -d today +"%Y_%m_%d"`
  uptime >> ${dir}/${current_time}_system_check.txt
  sleep 902;
  find $dir -mtime +${time} -type f|xargs rm -rf
  chown -R xxadmin.xxadmin ${dir}/*
done

2.远程拷贝日志脚本

#!/bin/sh

time=`date -d "1 day ago" +"%Y_%m_%d"`

file=catalina-daemon_${time}.out
dir1=/usr/local/tomcat7/logs
dir2=/usr/local/tomcat7-2/logs
dir3=/usr/local/tomcat7-3/logs
dir4=/usr/local/tomcat7-4/logs
remote_ser1=111.111.111.1
remote_ser2=111.111.111.2
remote_ser3=111.111.111.3
local_dir=/tmp/log_list
times=30
pro1=xxx_web
pro2=xxx_api
pro3=xxx_manage
pro4=xxx_forward

uptime_log_dir=/tmp/uptime_log
uptime_file=${time}_system_check.txt
local_uptime_file1=xxx_web
local_uptime_file2=xxxx_db
local_uptime_file3=xxx_nginx

if [ ! -d $local_dir/$time ];then
  mkdir -p $local_dir/$time;
fi
rm -rf $local_dir/$time/*

#tomcat_log
for i in `seq 1 4`
do
{

        rm -rf /tmp/.tmp_a_${i}.txt
        eval echo \$dir${i} > /tmp/.tmp_a_${i}.txt
        dir=`cat /tmp/.tmp_a_${i}.txt`
        
    rm -rf /tmp/.tmp_b_${i}.txt
        eval echo \$pro${i} > /tmp/.tmp_b_${i}.txt
        pro=`cat /tmp/.tmp_b_${i}.txt`

    ssh $remote_ser1 "cd ${dir};tar -zcf catalina-daemon_${time}.out.gz catalina-daemon_${time}.out > /dev/null 2>&1"
        if [ $? -ne 0 ];then
                echo `date`‘--->tar tomcat_log faile‘ >> $local_dir/$time/error.log;
        exit;
        fi

    scp $remote_ser1:$dir/$file.gz $local_dir/$time > /dev/null 2>&1
        if [ $? -ne 0 ];then
                echo `date`‘--->scp tomcat_log.gz faile‘ >> $local_dir/$time/error.log;
                exit;
        fi

    ssh $remote_ser1 ‘rm -rf $dir/${file}.gz > /dev/null 2 >& 1‘
        if [ $? -ne 0 ];then
                echo `date`‘--->rm the tomcat_log.gz file faile‘ >> $local_dir/$time/error.log;
                
        fi

    cd $local_dir/$time;tar -zxf $local_dir/$time/${file}.gz -O > ${pro}_${file};



        find $local_dir -mtime +${times} -type d |grep catalina*.out|xargs rm -rf

}
done

#uptime_log
for i in `seq 1 3`
do 

        rm -rf /tmp/.tmp_c_${i}.txt
        eval echo \$remote_ser${i} > /tmp/.tmp_c_${i}.txt
        remote_ser=`cat /tmp/.tmp_c_${i}.txt`

        rm -rf /tmp/.tmp_d_${i}.txt
        eval echo \$local_uptime_file${i} > /tmp/.tmp_d_${i}.txt
        local_uptime_file=`cat /tmp/.tmp_d_${i}.txt`

    ssh $remote_ser "cd ${uptime_log_dir};tar -zcf ${uptime_file}.gz ${uptime_file} "
    if [ $? -ne 0 ];then
      echo `date`‘--->tar uptime_file faile‘ >> $local_dir/$time/error.log;
      exit;
    fi

    scp $remote_ser:${uptime_log_dir}/${uptime_file}.gz $local_dir/$time > /dev/null 2>&1
    if [ $? -ne 0 ];then
      echo `date`‘--->scp uptime_file faile‘ >> $local_dir/$time/error.log;
      exit;
    fi

    ssh $remote_ser ‘rm -rf ${uptime_log_dir}/${uptime_file}.gz > /dev/null 2 >& 1‘
    if [ $? -ne 0 ];then
        echo `date`‘--->rm uptime_file.gz  faile‘ >> $local_dir/$time/error.log;
        exit;
    fi

    cd $local_dir/$time;tar -zxf $local_dir/$time/${uptime_file}.gz -O > ${local_uptime_file}_${uptime_file};
done
rm -rf $local_dir/$time/*.gz
rm -rf /tmp/.tmp_*.txt

/home/zxadmin/filter_xdaili_log.sh
if [ $? -ne 0 ];then
  echo `date`‘--->filter xdaili log file faile!‘ >> $local_dir/$time/error.log;
fi

3.日志过滤

#!/bin/bash

time=`date -d "1 day ago" +"%Y_%m_%d"`
local_dir=/tmp/log_list
files=`ls ${local_dir}/${time}|grep "xxdaili"`
dir1=filter_files

cd ${local_dir}/$time
if [ ! -d $dir1 ];then
  mkdir -p  $dir1;
fi
rm -rf $dir1/*

for i in $files
do
  if [ ! -f $i ];then
    echo  $i‘  not found‘ >>  $dir1/error.log;
  else
    name=`echo $i|awk -F"." ‘{print$2}‘`
    if [ $name = "txt" ];then
        cat $i |grep -v "min"|awk ‘{print$1"\t"$12}‘ > $dir1/$i
    elif [ $name = "out" ];then
        cat $i |grep ‘Exception\|at ‘ > $dir1/$i
    fi

  fi
    
done

 

centos记录uptime,tomcat日志切割,远程拷贝日志脚本

标签:print   eval   ash   name   seq   -o   lin   pre   ror   

原文地址:http://www.cnblogs.com/vijayfly/p/6439755.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!