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

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
时间: 2024-10-28 20:41:41

centos记录uptime,tomcat日志切割,远程拷贝日志脚本的相关文章

Nginx日志切割及常用统计脚本

1,编辑脚本 进入到/usr/local/nginx/logs日志目录下,新建一个脚本,添加下面内容.指定好日志目录路径,日志文件名称和pid的文件,最后kill -USR1信号用来告知应用程序重载配置文件 vim log.sh #!/bin/bash logs_path="/usr/local/nginx/logs/" mv ${logs_path}www_mrliangqi.log ${logs_path}www_mrliangqi$(date -d "yesterday

Nginx日志切割(Nginx日志备份)

日志对于一个服务来说非常的重要,本实例是对Nginx的日志做备份. 编译安装的nginx的日志一般在“/usr/local/nginx/logs” #!/bin/bash #切换到日志路径 cd /usr/local/nginx/logs #定义日志的时间,清楚的区分.Newaccess="access-`date +%Y-%m-%d-%H-%M`.log"Newerror="error-`date +%Y-%m-%d-%H-%M`.log"#移动日志mv acce

Apache日志切割及不记录指定类型日志

1.自带rotatelogs日志切割 ■ rotatelogs 日志轮询说明 ___________________________________________________________ 语法 rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ] 选项 -l    使用本地时间代替GMT时间作为时间基准.注意:在一个改变GMT偏移量(比如夏令时)的环境中 使用-l会导致不可预料的结果. logfile

日志切割之Logrotate

关于日志切割 日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事.logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循).压缩以及删除旧的日志文件.例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志.配置完后,logrotate的运作完全自动化,不

Nginx访问日志、日志切割、静态文件不记录日志和过期时间

Nginx访问日志 Nginx访问日志主要有两个参数控制:log_format #用来定义记录日志的格式(可以定义多种日志格式,取不同名字即可)access_log #用来指定日至文件的路径及使用的何种日志格式记录日志 设置访问日志的格式,打开配置文件vim /usr/local/nginx/conf/nginx.conf 搜索关键字log_format就可以找到日志格式配置行log_format语法格式及参数语法说明如下:$remote_addr客户端IP(公网IP)$http_x_forwa

nginx访问日志,日志切割,静态文件不记录日志

nginx访问日志 日志格式 [[email protected] nginx]# vim conf/nginx.conf log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' '$host "$request_uri" $status' '"$http_referer" "$http_user_agent"'; combined_realip这

Nginx日志格式与日志切割篇三

一:作用 Ngx_http_log_module:定义日志格式,并且以指定的格式保存. 二:示例配置 log_format compression '$remote_addr - $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" "$gzip_ratio"'; access_log

Linux------------logrotate日志切割工具

目录 一.关于日志切割 二.配置文件详解 2.1 配置文件说明 2.2 常见配置参数 2.3 定时任务 三. nginx日志模板 3.1 关于USR1信号解释 转发https://www.cnblogs.com/clsn/p/8428257.html 一.关于日志切割 日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事.

linux shell:nginx日志切割脚本

需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名 简要命令: mv /usr/local/tengine/logs/access.log /usr/local/tengine/logs/access-date.log kill -USER1 Nginx主进程号. 解释: 通过mv命令重命名日志,并且通过kill -USER1 nginx-id的命令,告诉nginx需要写新的日志, 不然nginx不会在mv之后继续写日志. 我们可以通