获取远程服务器日志文本

问题描述

多年不编码,别说思路了连基础语法都较劲……现因工作需要,要做一个WinForm工具来获取一组远程服务器中的多个应用站点的多个日志文本(.txt或.log),场景和要求如下:1.服务器信息、应用站点路径信息都配置在XML中来读取;2.各个应用站点中的日志文件生成周期和文件名都不同,无规律;3.设置手动选取的控件(如Datetimepicker)来设置要筛选的日志文件生成的时间范围;4.日志有两种,一种是错误日志,可直接获取;另一种是完整日志,需要判断日志文件中有没有关键字“Error”,若有则抓取;5.将所有各服务器各站点上筛选后得到的日志,抓取到本地。可能文字描述比较枯涩,我大概举个例子:有2台服务器10.1.1.1(1)和10.1.1.2(2),1上有2个应用站点,路径分别是d:App1logs*.txt,e:App2logger*.log。2上也有几个应用站点。这些信息是经常变化的,要配在XML里来读取。现在要求取3天以内的日志文件:1上App1的日志,1上APP2的内含“Error”关键字的日志,2上所有的日志。这些判断准则也可能会变化最好也配在XML里。取下来后存放在本地,按照1App1*.txt1App2*.log这样存放好。界面大概就是这样。请问有什么实现思路?或者更甚的有没有成型的类似代码?谢谢!

解决方案

解决方案二:
各个应用站点中的日志文件生成周期和文件名都不同,无规律那么就需要根据服务器IP和每个服务器日志的文件名规则来进行判断,需进行很多if判断。如果文件名不带有日期字符串,那么就需要读取文件的创建时间。获取日志的过程比较简单,就是打开远程文件再保存到本地。
解决方案三:

解决方案四:
规则做成脚本或者正则表达式放在配置中,日志用文件共享传输。
解决方案五:
引用1楼yaotomo的回复:

各个应用站点中的日志文件生成周期和文件名都不同,无规律那么就需要根据服务器IP和每个服务器日志的文件名规则来进行判断,需进行很多if判断。如果文件名不带有日期字符串,那么就需要读取文件的创建时间。获取日志的过程比较简单,就是打开远程文件再保存到本地。

是的是需要按照创建/修改时间来判别,但这个操作一定要在服务器端完成,因为日志量太多不能全部抓取到本地再甄别。请问这个该怎么做?
解决方案六:
做个服务程序放到服务器上,客户端将规则发到服务端,服务端提取文件后传回客户端

时间: 2025-01-21 04:50:19

获取远程服务器日志文本的相关文章

snmp4j获取远程服务器的 上传和下载流量

问题描述 snmp4j获取远程服务器的 上传和下载流量 对应OID是多少,在哪里可以查到,不要复制粘贴的,要给思路的.谢谢了 解决方案 SNMP Interfaces Group: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ifNumber 1.3.6.1.2.1.2.1 ifTable 1.3.6.1.2.1.2.2 ifEntry 1.3.6.1.2.1.2.2.1 ifIndex 1.3.6.1.2.

上传-如何获取远程服务器用户对应下的目录树

问题描述 如何获取远程服务器用户对应下的目录树 最近在做一个文件上传下载的功能,从本地和远程linux服务器下载或上传文件,可以通过点击上传文件按钮获取本地目录,从而选择文件:如何获取远程服务器用户对应下的目录树呢,可视化操作 解决方案 向服务器查询借口获取结果

java通过ip获取远程服务器的内存使用率

问题描述 java通过ip获取远程服务器的内存使用率 java通过ip获取远程服务器的内存使用率,哪位大神会,或者可以给我分享一下,这个研究了很久实在没办法解决,我的邮箱是476562571@qq.com 解决方案 1.能直接ssh么? 如果可以,直接通过命令 ssh $ip free -m 获取 2.不能的话,远程服务器启一个服务,通过rpc方案解决

c#获取远程服务器的磁盘使用率

问题描述 请问大神们如何实现,网上查阅了wmi的貌似只有使用了多少,并没有使用率.请大神们支支招.就差这一个数据,项目到deadline了.急求. 解决方案 解决方案二:(windows)运维,要开发一个windowsservice,部署到每台服务器上.devops是一个软件研发项目(虽然是针对运维的),而不是你随便找点简单的命令学学就行的.解决方案三:有的人要么就会点手工操作,要么就寻找一点不需要编程的"技术".这并不能实现任何高大上的自动运维工作,这样的人容易被团队最先淘汰.解决方

C# 如何获取远程服务器用户的信息?

问题描述 请教各位大牛,想开发一个winform项目放在服务器上,请问下如何获取远程连接服务器用户的ip地址,用户的电脑名称和登陆服务器的用户名.知道一种办法是读取windows安全日志,但是想通过监控3389端口获取不知道可不可以?怎么样实现呢 解决方案 解决方案二:没有评论解决方案三:可以,不过需要自己抓网卡数据包,而且数据包里只有IP是可以直接获取的要知道电脑名称,你就需要通过IP去访问对方电脑,要知道登陆用户名,你就需要对数据包解析,然后分析里面的请求解决方案四:引用2楼Z6544334

如何获取远程服务器的CPU和内存使用率?

问题描述 小弟写一个程序想监控远程服务器CPU与内存使用率的情况,望高手指教! 解决方案 解决方案二:利用win自带的远程登录直接查看就是了,如果不完全是你自己的服务器,就得给权限才行解决方案三:参考:解决方案四:使用SNMP协议解决方案五:这个使用WMI是正确方法.

获取远程服务器网站源文件二种方法

 代码如下 复制代码 function getsourcecode($q){    return @file_get_contents($q); } //用curl获取网站源文件 function c_getpagecode($c_url,$p_i=0){  $user_agent = "mozilla/4.0";  $proxy[0] = "http://211.155.231.208:80"; //浙江省杭州市 电信idc机房  $proxy[1] = &quo

ASP.NET在执行某获取远程服务器进程的用户名时报错“对象的当前状态使该操作无效”

问题描述 各位大神,我ASP.net中用c#语言获取远程主机的进程所属的用户名时,用到了网络上提供的以下语句,但在执行时报错:SelectQueryquery1=newSelectQuery("Select*fromWin32_ProcessWHEREprocessID="+pID);ManagementObjectSearchersearcher1=newManagementObjectSearcher(query1);try{foreach(ManagementObjectdisk

asp 获取远程服务器文件[采集程序]

Function GetPage(Path)         t = GetBody(Path)         GetPage=BytesToBstr(t,"UTF-8") End function Function GetPage2(Path)         t = GetBody(Path)         GetPage2=BytesToBstr(t,"GB2312") End function Function GetBody(url)