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();
}

2 Comments on this Post.

  1. qia

    没有考虑port的问题 ssh 的port

  2. neo

    有一个静态类里可以设置

Leave a Comment.