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

时间:2021-01-09 23:42:46

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

#!/bin/sh

dir=/tmp/uptime_log

process=`ps -ef|grep $|grep -v "grep" |grep -v "vim"|grep -v "ps"|wc -l`
if [ $process -gt ];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 ;
find $dir -mtime +${time} -type f|xargs rm -rf
chown -R xxadmin.xxadmin ${dir}/*
done

2.tomcat日志切割

#!/bin/bash
file1='/usr/local/tomcat7/logs'
file2='/usr/local/tomcat7-2/logs'
file3='/usr/local/tomcat7-3/logs'
file4='/usr/local/tomcat7-4/logs'
logtime="`date +20%y_%m_%d`"
time=
for i in `seq `
do
{
rm -rf tmp_${i}.txt
eval echo \$file${i} > tmp_${i}.txt
file=`cat tmp_${i}.txt`
cp $file/catalina-daemon.out $file/catalina-daemon_${logtime}.out
if [ $? -eq ];then
echo "" > $file/catalina-daemon.out
fi chown zxadmin.zxadmin $file/catalina-daemon_${logtime}.out find $file -mtime +${time} -type f|grep catalina-daemon_*.out|xargs rm -rf
rm -rf tmp_${i}.txt }
done

3.远程拷贝日志脚本

#!/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-/logs
dir3=/usr/local/tomcat7-/logs
dir4=/usr/local/tomcat7-/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=
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

4.日志过滤

#!/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日志切割,远程拷贝日志脚本的更多相关文章

  1. nginx 日志切割(也适用于docker)

    =============================================== 2019/4/6_第2次修改                       ccb_warlock 201 ...

  2. 日志切割之Logrotate

    1.关于日志切割 日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处 ...

  3. Logrotate日志切割

    日志切割Logrotate 关于日志切割 logrotate程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到"转储"作用. 可以节省磁盘空间 ...

  4. 日志切割logrotate和定时任务crontab详解

    1.关于日志切割 日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处 ...

  5. Nginx 热部署和日志切割,你学会了吗?

    上篇文章,我们已经安装好 Nginx,并且配置好 Nginx 文件后,这个时候我就需要操作 Nginx 的命令行了,这篇文章主要讲解 Nginx 命令行相关知识,并通过日常遇到的热部署.切割日志文件场 ...

  6. linux shell:nginx日志切割脚本

    需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名   简要命令: mv /usr/local/tengine/logs/access.l ...

  7. nginx日志切割总结

    Nginx日志切割   方法1(脚本+定时执行): #step1:加脚本 cut_nginx_log.sh,主进程把USR1信号发给worker,worker接到这个信号后,会重新打开日志文件 #!/ ...

  8. Nginx定时日志切割

    Nginx定时日志切割 现有的日志都会存在access.log文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维 人员查看,所以我们可以通过把这个大的日志文件切割为多份不 ...

  9. tomcat集群日志切割和远程备份脚本分享

    笔者一共有3台tomcat服务器,一共4个tomcat服务,未来还会增加4个作为负载,笔者想通过在存储服务器对tomcat服务的日志进行远程切割和备份到存储上. 文中采用清空日志的方式,优点是不用重启 ...

随机推荐

  1. NSSM - windows 服务安装工具

    nssm  windows 服务安装工具,简单方便, windows service wrapper 也是一个类似的工具,但是需要进行配置文件编写= 下载的地址: http://nssm.cc/rel ...

  2. [Spring MVC] - 从数据库读取MessageSource

    Spring MVC中使用MessageSource默认是写在properties文件当中,以支持国际化. 但很多时候我们需要把数据写到数据库当中,而不是在properties文件当中,以方便日常维护 ...

  3. 初探linux内核编程,参数传递以及模块间函数调用

    一.前言                                  我们一起从3个小例子来体验一下linux内核编程.如下: 1.内核编程之hello world 2.模块参数传递 3.模块间 ...

  4. GAC write failed when upgrade with InstallShield

    在接近final-build的时候,突然发现当前版本从上一个版本upgrade的时候,需要写到GAC (Global Assembly Cache)的assambly会写失败掉.但是只会在特定的Mic ...

  5. BZOJ 1711: [Usaco2007 Open]Dingin吃饭( 最大流 )

    将牛拆成两个点 i 和 i' 并连弧 , S 向每种 food 连边 , 每种 drink 向 T 连边 , 每种 food 向喜欢他的 cow 连边 到 i , 每种 drink 从喜欢它的 cow ...

  6. linux 细节 问题解决

    Ubuntu 12.04 启动时停在Checking battery state…… 1.在停止的界面按下Ctrl+Alt+F1 2.reboot halt

  7. 简单几步优化你的windows,加快开机速度(重装windows之后要做的几件事)

    每个人都想要让自己的系统运行得快一些,开机快一些,我就来说说我自己的经验,我使用的系统是windows8.1,当然这有些方法也适用于其他的系统,我每次重装完系统之后第一件事就是下面几步,当然重装系统之 ...

  8. CodeChef - MRO Method Resolution Order(打表)

    题意:有一种关系叫继承,那么继承父类的同时也会继承他的一个函数f,能继承任意多个父类或不继承,但不能继承自己的子类.现在规定一个列表,这个列表必须以1~N的顺序排列,并且父类不会排在子类后面,1含有一 ...

  9. 【bzoj2878】 Noi2012—迷失游乐园

    http://www.lydsy.com/JudgeOnline/problem.php?id=2878 (题目链接) 题意 求基环树上以任意点为起点的简单路径期望长度. Solution 啊啊啊好丑 ...

  10. 【WinForm程序】注册热键快捷键切换

    重写DefWndProc事件 #region Window 消息捕获 const int WM_COPYDATA = 0x004A; public struct COPYDATASTRUCT { pu ...