Chinaunix

标题: 求助,如何多台机器选取固定日志文件error部分远程方式汇总到本地 [打印本页]

作者: gly896420885    时间: 2012-12-31 13:09
标题: 求助,如何多台机器选取固定日志文件error部分远程方式汇总到本地
如题:如何多台机器选取固定日志文件error部分远程方式汇总到本地
需求:在本地虚拟机上建立脚本,能够远程方式汇总多台业务机器最近一天log日志的error部分到本地
权限:scp ssh 用户账户和密码 不能在业务机器上安装软件等
求思路,求办法,求脚本
作者: 过过招    时间: 2012-12-31 13:23
集中式日志管理。
作者: cu_little_bird    时间: 2012-12-31 13:25
1. 配置ssh信任关系
2. ssh username@ip "cat log|grep -i error" >filename
作者: gly896420885    时间: 2012-12-31 13:48
能具体下吗?回复 2# 过过招


   
作者: gly896420885    时间: 2012-12-31 13:52
执行慢,一直等待,而且没结果,回复 3# cu_little_bird


   
作者: tyw09    时间: 2012-12-31 13:54
一个syslog不就行了?
作者: 过过招    时间: 2012-12-31 14:01
你的日志范围,是仅系统的,还有包括应用程序如weblogic,oracle,nginx等等的?

如果仅系统的,使用Linux系统日志服务,采用集中日志管理,将所有机器日志远程传送到指定机器。


如果包括应用程序的,则需要手工处理了!
作者: waker    时间: 2012-12-31 14:11
如果用syslog[-NG]不能直接记录到同一机器?
作者: gly896420885    时间: 2012-12-31 15:29
一个基于系统而自身独立的业务系统回复 7# 过过招


   
作者: gly896420885    时间: 2012-12-31 15:51
请帮我修改如下代码(实现输出部分写到本地文件中):
#!/usr/bin/expect -f
#!/bin/bash
#-------------------------------------------------- set the variable,you can modify the value
set loginuser "root"                  
set loginpass {123qwe}
set ipaddr [lrange $argv 0 0]   
set timeout 300
set cmd_prompt "]#|~]?"
#-------------------------------------------------- login by ssh
spawn ssh $loginuser@$ipaddr
set timeout 300
expect {
     -re "Are you sure you want to continue connecting (yes/no)?" {
         send "yes\r"
     } -re "assword:" {
         send "$loginpass\r"
     } -re "Permission denied, please try again." {
        exit
     } -re "Connection refused" {
         exit
     } timeout {
        exit
     } eof {
        exit
     }
}
exec sleep 1
expect {
  -re $cmd_prompt {
     send "df -h\r"
  }
}
exec sleep 1
expect {
  -re $cmd_prompt {
     send "cat `find / -group oinstall -type f -mtime -1 -size +0k -name E_TEST.rpt -print` | gre
p -i 'INFO    OGG-'\r"
  }
}
expect {
  -re $cmd_prompt {
     send "exit\r"
  }
}
exit
#interact


该代码部分:
exec sleep 1
expect {
  -re $cmd_prompt {
     send "cat `find / -group oinstall -type f -mtime -1 -size +0k -name E_TEST.rpt -print` | gre
p -i 'INFO    OGG-'\r"
  }
}
结果会显示到本地机器上,但我想输入到本地的机器上,怎么办


回复 1# gly896420885


   
作者: gly896420885    时间: 2012-12-31 16:22
看了你以前回复过的的帖子,expert中加了log_file+名称参数,能产生文件,但我目的是明确的,但实现方式好不好,我没法判断,我对Linux编程认识还在进一步学习中回复 8# waker


   
作者: Shell_HAT    时间: 2012-12-31 16:28
回复 5# gly896420885


    你的ssh信任是不是没有配好?
作者: Shell_HAT    时间: 2012-12-31 16:32
回复 10# gly896420885


expect不是一个好主意。推荐3楼说的ssh信任

两台主机之间建立信任
http://bbs.chinaunix.net/viewthread.php?tid=2320506#pid15654330
http://bbs.chinaunix.net/thread-3619435-1-1.html

检测主机之间是否建立的了互信关系
http://bbs.chinaunix.net/thread-3605457-1-1.html
作者: gly896420885    时间: 2013-01-04 15:11
多谢!!!回复 13# Shell_HAT


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2