工作中有时间会遇到大量开启
监控的工作.如果机器数量比较多,人的操作时间可能就会耗费过多,所以目前来看,写脚本来实现监控是最好的解决办法.
下面的是通过
java来实现SSH 登录:
上传监控脚本
执行命令
下载监控结果.
三个功能... 满足了自动化监控的基本需求.
当然也可以写成exe的监控脚本,等有时间了再详细完善一下.
package TT;
import java.lang.reflect.Array;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.ConnectionInfo;
import ch.ethz.ssh2.SCPClient;
import ch.ethz.ssh2.Session;
/**
*
* @author chenshu
*/
public class Main {
String IpArr[][] = {
{ "10.168.31.69", "xxxxx", "xxxxxx" },
{ "10.168.32.37", "xxxxxx", "xxxxxx" },
{ "10.168.32.38", "xxxxxx", "xxxxxx" },
{ "10.168.31.11", "xxxxxx","xxxxxx" },
{ "10.168.31.12", "xxxxxx","xxxxxx" },
{ "10.168.31.18", "xxxxxx","xxxxxx" },
{ "10.168.31.19", "xxxxxx","xxxxxx" },
};
public static void main(String[] args) {
Main m = new Main();
// m.GetFile();
//m.putFile();
m.ExecCmd();
}
public void ExecCmd() {
//String cmd = "mv nmon_x86_64_rhel54 nmon";
String cmd="chmod 777 nmon_x86_64_rhel54";
// String cmd="./nmon_x86_64_rhel54 -f -s5 -c5000";
for (int i = 0; i < IpArr.length; i++) {
System.out.println("-------ExecCmd 执行 -----" + i );
try {
Connection con = new Connection(IpArr[i][0]);
ConnectionInfo info = con.connect();
boolean result = con.authenticateWithPassword(IpArr[i][1],IpArr[i][2]);
Session session = con.openSession();
session.execCommand(cmd);
session.close();
System.out.println("IPaddr" + IpArr[i][0]);
System.out.println("userName" + IpArr[i][1]);
System.out.println("passwd" + IpArr[i][2]);
} catch (Exception ex) {
System.out.println(ex.getLocalizedMessage());
}
}
}
public void putFile() {
for (int i = 0; i < IpArr.length; i++) {
System.out.println("-------putFile 执行 -----" + i );
try {
// 创建链接
Connection con = new Connection(IpArr[i][0]);
ConnectionInfo info = con.connect();
boolean result = con.authenticateWithPassword(IpArr[i][1],IpArr[i][2]);
Session session = con.openSession();
// 创建scp客户端
SCPClient scp = con.createSCPClient();
// 上传文件
scp.put("D:\\nmon\\nmonfile\\nmon_x86_64_rhel54", "./");
scp.wait(10000);
con.close();
System.out.println("IPaddr: " + IpArr[i][0] );
System.out.println("userName: " +IpArr[i][1] );
System.out.println("passwd: " +IpArr[i][2] );
} catch (Exception ex) {
System.out.println(ex.getLocalizedMessage());
}
}
}
public void GetFile() {
// IP列表
for (int i = 0; i < IpArr.length; i++) {
System.out.println("-------GetFile 执行 -----" + i );
try {
// 创建链接
Connection con = new Connection(IpArr[i][0]);
ConnectionInfo info = con.connect();
boolean result = con.authenticateWithPassword(IpArr[i][1],IpArr[i][2]);
Session session = con.openSession();
// 创建scp客户端
SCPClient scp = con.createSCPClient();
// 下载文件
scp.get("*.nmon", "D:\\nmon");
scp.wait(10000);
System.out.println("IPaddr: " + IpArr[i][0] );
System.out.println("userName: " +IpArr[i][1] );
System.out.println("passwd: " +IpArr[i][2] );
} catch (Exception ex) {
System.out.println(ex.getLocalizedMessage());
}
}
}
}