java获取远程服务器应用程序服务状态
package lct.conference.test; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; public class Test3 {
public static void main(String[] args){
String[] cmdStr = { "cmd", "/C", "wmic /node:\"192.168.0.34\" /user:\"administrator\" /password:\"12345\" service get /value" };
List<Map<String, Object>> list = null;
try {
list = getAllResult(cmdStr, 25);
System.out.println(list.size());
JSONArray jr = JSONArray.fromObject(list);
JSONObject jo = new JSONObject();
for(int i=0;i<list.size();i++){
jo.clear();
jo=(JSONObject) jr.get(i);
if("Apache Tomcat".equals(jo.get("Caption"))){
String ifStarted = jo.get("Started").toString();
System.out.println( "Apache Tomcat服务"+ifStarted);
}else if("MySQL".equals(jo.get("Caption"))){
String ifStarted = jo.get("Started").toString();
System.out.println( "MySQL服务"+ifStarted);
}else if("PCMS Service".equals(jo.get("Caption"))){
String ifStarted = jo.get("Started").toString();
System.out.println( "PCMS Service服务"+ifStarted);
}else if("PCMS Watch Service".equals(jo.get("Caption"))){
String ifStarted = jo.get("Started").toString();
System.out.println( "PCMS Watch Service服务"+ifStarted);
}
}
System.out.println(list);
} catch (IOException e) {
e.printStackTrace();
System.out.println( "获取所有服务信息失败!");
}
}
private static List<Map<String, Object>> getAllResult(String[] cmdStr, int flag) throws IOException {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Integer index = 1;
Process p = null;
String str = null;
String[] arrStr = new String[2];
Map<String, Object> map = new HashMap<String, Object>();
InputStreamReader isr = null;
BufferedReader br = null;
try {
p = Runtime.getRuntime().exec(cmdStr);
isr = new InputStreamReader(p.getInputStream(),"GBK");
br = new BufferedReader(isr);
while ((str = br.readLine()) != null) {
if (str!=null && !"".equals(str)) {
if (index % flag == 0) {
list.add(map);
map = new HashMap<String, Object>();
}
arrStr = str.split("=");
str = str.endsWith("=") ? "" : arrStr[1];
map.put(arrStr[0], str);
index++;
}
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("获取进程的所有信息失败!");
throw e;
} catch (Exception e) {
e.printStackTrace();
System.out.println("获取执行结果失败!");
} finally {
try {
if (br != null) {
}
br.close();
if (isr != null) {
isr.close();
}
} catch (IOException e) {
e.printStackTrace();
}
if (p != null) {
p.destroy();
}
}
return list;
}
}
java获取远程服务器应用程序服务状态的更多相关文章
- JAVA本地远程连接linux程序监控状态
环境: 1.本地window 2.程序部署在centos 一,启动访问权限安全守护程序 新建文件:jstatd.all.policy ,注意路径 grant codebase "$JA ...
- 使用nodejs和Java访问远程服务器的服务
既然这篇文章用的是nodejs和Java访问远程服务器的服务,那么咱们先用另一门编程语言,SAP的ABAP(我日常工作使用得最多的编程语言)来开发一个服务吧. 这是我用ABAP编程语言实现服务的类:Z ...
- Windows系统中使用WMI获取远程服务器的信息
使用WMI获取远程服务器的状态 我做的项目里边主要包含两个内容: (1)对发布在服务器上的服务(IIS服务.WCF服务)是否可以正常访问: (2)获取服务器上的部分指标:如CPU.内存.磁盘空间信息等 ...
- Java获取Web服务器文件
Java获取Web服务器文件 如果获取的是服务器上某个目录下的有关文件,就相对比较容易,可以设定死绝对目录,但是如果不能设定死绝对目录,也不确定web服务器的安装目录,可以考虑如下两种方式: 方法一: ...
- 使用 xcode 8 构建版本 iTunes Connect 获取不到应用程序的状态
今天在提交 APP 审核版本的时候iTunes Connect 一直获取不到应用程序的状态,原因是,14号 xcode 8一出 直接升级使用 xcode 8 打包发布包,然后直接用 xcode8 构建 ...
- C# 获取当前服务器运行程序的根目录,获取当前运行程序物理路径
C# 获取当前服务器运行程序的根目录,获取当前运行程序物理路径 string tmpRootDir = AppDomain.CurrentDomain.BaseDirectory;//获得当前服务器程 ...
- C# 获取当前服务器运行程序的根目录
C# 获取当前服务器运行程序的根目录,获取当前运行程序物理路径 string tmpRootDir = AppDomain.CurrentDomain.BaseDirectory;//获得当前服务器程 ...
- java ssh远程服务器并执行多条shell命令
java ssh远程服务器并执行多条命令 import java.io.BufferedReader; import java.io.IOException; import java.io.Input ...
- Java 程序检查远程服务器状态
通常我们以命令的方式判断远程服务器是否正常运行有两种方式,ping 或 telnet 一个远程端口.假设我们要检查的远程服务器都是 Linux 系统. 从 JDK 1.5 以后, InetAddres ...
随机推荐
- CodeForces-166B-Polygons
B. Polygons time limit per test:2 seconds memory limit per test:256 megabytes input:standard input o ...
- ILSVRC比赛带来的算法
李飞飞和它的团队搜集了ImageNet一个超过15 million的图像数据集,大约有22,000类.这个文件集合对深度卷积网络极大地推进深度学习各领域的发展. ILSVRC是对ImageNet进行分 ...
- Vue.js 2.x 混入
Vue.js 2.x mixins 混入 混入(mixins)是一种分发vue组件中可复用功能的非常灵活的方式.混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被混入该组件本身 ...
- Fiddler讲解2
想要 浏览更多Fiddler内容:请点击进入Fiddler官方文档 阅读目录: 一.查看网络流量: 二.检查网络流量: 三.查看Web会话摘要: 四.查看Web会话统计信息: 五.查看Web会话内容: ...
- [The 2019 Asia Yinchuan First Round Online Programming] D Take Your Seat
也许更好的阅读体验 \(\mathcal{Description}\) 原题链接 题目大意 该题目有两个问题 \(Task\ 1\),有\(n\)个人\(n\)个座位,每个人都有一个对应的座位,每个人 ...
- JS权威指南读书笔记(三)
第七章 数组 1 数组的实现是经过优化的,用数字索引来访问数组元素一般来说比访问常规的对象属性要快的多. 2 数组直接量的语法允许有可选的结尾的逗号,故[ ; ; ]只有两个元素而非三个. 3 调用构 ...
- Fortify漏洞之Access Control: Database(数据越权)
继续对Fortify的漏洞进行总结,本篇主要针对 Access Control: Database(数据越权)的漏洞进行总结,如下: 1.Access Control: Database(数据越权) ...
- Android笔记(三) 使得Activity之间可以跳转---Intent
什么是Intent 一个APP肯定不单单由一个Activity构成,我们在使用过程中,经常需要在多个Activity中跳转,Android中Intent可以帮我们来完成在各个Activity中跳转的功 ...
- Python之路【第十篇】Python操作Memcache、Redis、RabbitMQ、SQLAlchemy
Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...
- websocket搭建的聊天室
在前后端数据交互的时候我们经常使用的是ajax,用的是传统的http协议,而http协议有个致命的缺点,就是请求一结束,连接就断开了, 我们为了保持这个链接的,通常会使用cookie,而自从h5出现w ...