用shell脚本实现每天定时收集全网日志到一台服务器

需求


现在公司有这样一个需求,需要收集每天全网运行业务的设备上的某个特定目录底下的日志到一台服务器(这台服务器我们简称logserver),这并在这台logserver上生成以日期为名字的目录

解决思路:


在logserver的crontab里设置两个脚本,在当日晚上23:30执行脚本1收集当日即将被删除的全网脚本;在并在早上8:30执行脚本2,收集昨日全网剩余的脚本。先测试对端设备是否能ping通,如果不行输出ping不通设备到特定日志,以备运维查看,再利用sshkey免密码登陆设备自动scp达到拷贝日志的目的。

以下是脚本正文及相应注释

脚本1


#!/bin/bash
date=`date  +%Y%m%d`
mkdir /log/$date/sleep 10
cp -r /script/logcapture/directory/*  /log/$date/
#/script/logcapture/directory/*下面都是目录,写了很多日志类型(rtsp,avsdb,protocoltiming等等,都是视频服务器上的日志类型,这里不作具体解释),日志类型底下再新建了设备名字的空目录
sleep 10 
for d in `cat /script/logcapture/masterserver`
#/script/logcapture/masterserver下面都是设备名字,事先做了无密码登陆(拷贝sshkey),直接ssh设备名字便能登陆设备,以下的masterserver,allservers与之类似,都是存放设备名称的 
do if ping -c 2 $d判断是否ping命令是否能成功执行,如果ping两次不成功自动输出"remote server is unavailable" 
then          
scp root@$d:/arroyo/log/rtsp.log.$date* /log/$date/rtsp/$d/  
else
     echo "remote server $d is unavailable"  >>  /script/logcapture/problemserver.log
#输出不成功信息至特定日志
fi
done

脚本2 


#!/bin/bash
date=`date -d yesterday +%Y%m%d`
for a in `cat /script/logcapture/vault`
#/script/logcapture/vault下面都是设备名字,事先做了无密码登陆,直接ssh设备名字便能登陆设备   
do 
if ping -c 2 $a    
then 
scp root@$a:/arroyo/log/avsdb.log.$date* /log/$date/avsdb/$a/
scp root@$a:/arroyo/log/protocoltiming.log.$date* /log/$date/protocoltiming/$a/
scp root@$a:/arroyo/log/c2k.log.$date* /log/$date/c2k/$a/  
else     
	echo "remote server $a is unavailable"  >>  /script/logcapture/problemserver.log
fi
done
sleep 5
for b in `cat /script/logcapture/masterserver`
 do
 	if ping -c 2 $b 
 		then 
 		scp root@$b/arroyo/log/avsdb.log.$date* /log/$date/avsdb/$b/
 		scp root@$b:/arroyo/log/protocoltiming.log.$date* /log/$date/protocoltiming/$b/
 		scp root@$b:/arroyo/log/c2k.log.$date* /log/$date/c2k/$b/
 		   else
 		        echo "remote server $b is unavailable"  >>  /script/logcapture/problemserver.log
 		    fi
done
sleep 5
for a in `cat /script/logcapture/allservers`
 do
 	if ping -c 2 $b 
 		then      
 		scp root@$a:/arroyo/log/avsdb.log.$date* /log/$date/avsdb/$c/          
 		scp root@$a:/arroyo/log/protocoltiming.log.$date* /log/$date/protocoltiming/$c/          
 		scp root@$a:/arroyo/log/c2k.log.$date* /log/$date/c2k/$c/ 
 		 else     
 		 	echo "remote server $c is unavailable"  >>  /script/logcapture/problemserver.log
 		 fi
 done

大概就是这样,有问题及改进建议请大家指出用shell脚本实现每天定时收集全网日志到一台服务器

原创文章,作者:wangtiejiang,如若转载,请注明出处:http://www.178linux.com/6564

(3)
wangtiejiangwangtiejiang
上一篇 2015-07-27 22:52
下一篇 2015-07-27 23:01

相关推荐

  • 中文man安装手册

      首先需要确认的是有没有安装中文支持,如果没有请安装:#yum groupinstall -y "Chinese Support" 现在下载安装包: wget http://manpages-zh.googlecode.com/files/manpages-zh-1.5.1.tar.gz  (这个wget是直接网页下…

    系统运维 2016-01-13
  • awk用法进阶

    一、控制语句 1 if-else语句        使用场景:对awk取得的整行或某个字段做条件判断        语法:         &nbsp…

    Linux干货 2016-09-21
  • rsyslog日志服务

    一、知识整理: 1、日志服务rsyslogd新特点:     多线程;     基于SSL/TLS/UDP/TCP/RELP网络协议传输日志信息;     强大的过滤器,实现过滤日志信息中任何部分的内容;   &nbsp…

    Linux干货 2016-10-24
  • M20-1 8月3号作业

    1、三种权限rwx对文件和目录的不同意义 2、umask和acl mask 的区别和联系 3、三种特殊权限的应用场景和作用 4、设置user1,使之新建文件权限为rw——- 5、设置/testdir/f1的权限,使user1用户不可以读写执行,g1组可以读写 /testdir/dir的权限,使新建文件自动具有acl权限:user1:r…

    Linux干货 2016-08-05
  • 第三周作业

    博客具体内容请移步博客园: http://www.cnblogs.com/ITOps/p/6204549.html

    Linux干货 2016-12-20
  • N25第四周总结(lvm)

    lvm 详解 大纲:    1、什么是lvm     2、为什么要使用lvm     3、如何实现lvm     4、lvm各项命令详解   1、什么是lvm:        lmv (Logical Volume Manager…

    Linux干货 2016-12-22

评论列表(2条)

  • stanley
    stanley 2015-07-27 23:02

    帮你修正了格式,应该比以前好些

    • wangtiejiang
      wangtiejiang 2015-07-27 23:46

      @stanley多谢!!