sshxcute正式发布1.0版本
把sshxcute开源了,放在了Google Code上,第一个做的开源项目啊,不容易啊,里程碑式的一帖 ,纪念下吧。
English version guideline: http://code.google.com/p/sshxcute
中文使用指南:http://code.google.com/p/sshxcute/wiki/GuidelineOfChineseVersion
简介:
正如名字所示,SSHXCUTE是一个框架。它允许工程师利用Java代码通过SSH连接远程执行Linux/UNIX系统上的命令或者脚本,这种方式不管是针对软件测试还是系统部署,都简化了自动化测试与系统环境部署的步骤。
SSHXCUTE的设计旨在:
最小的系统需求 – 仅仅开启SSH连接即可。
易用性 – 工程师利用Java代码执行命令或脚本。
内置命令/脚本任务执行功能。
易扩展 – 用户可以自定义任务类型并集成于sshxcute框架。
代码示例一瞥:
// 新建一个SSHExec引用 SSHExec ssh = null; // 我们下面所有的代码都放在try-catch块中 try { // 实例化一个ConnBean对象,参数依次是IP地址、用户名和密码 ConnBean cb = new ConnBean("9.125.71.115", "username","password"); // 将刚刚实例化的ConnBean对象作为参数传递给SSHExec的单例方法得到一个SSHExec对象 ssh = SSHExec.getInstance(cb); // 新建一个ExecCommand对象,引用必须是其继承的CustomTask类 CustomTask ct1 = new ExecCommand("chmod 755 /home/tsadmin/sshxcute_test.sh"); // 新建一个ExecShellScript对象,引用必须是其继承的CustomTask类 CustomTask ct2 = new ExecShellScript("/home/tsadmin","./sshxcute_test.sh","hello world"); // 连接服务器 ssh.connect(); // 上传shell脚本到/home/tsadmin目录 ssh.uploadSingleDataToServer("data/sshxcute_test.sh", "/home/tsadmin"); // 执行命令 ssh.exec(ct1); // 执行脚本并且返回一个Result对象 Result res = ssh.exec(ct2); // 检查执行结果,如果执行成功打印输出,如果执行失败,打印错误信息 if (res.isSuccess) { System.out.println("Return code: " + res.rc); System.out.println("sysout: " + res.sysout); } else { System.out.println("Return code: " + res.rc); System.out.println("error message: " + res.error_msg); } } catch (TaskExecFailException e) { System.out.println(e.getMessage()); e.printStackTrace(); } catch (Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); } finally { ssh.disconnect(); } |
没有考虑port的问题 ssh 的port
有一个静态类里可以设置