PelicanDT使用代码操作Linux

产品介绍

PelicanDT(Pelican Distributed Test),是阿里云提供的一款 Linux 系统远程控制利器,是主要针对分布式应用提供的集成测试解决方案,用于帮助开发者简单、高效地测试分布式应用。

PelicanDT 具有以下特点:

  • 使用 Java 语言与 Linux 系统交互。
  • 本地控制 Linux 系统执行命令。
  • 通过简单的操作对应用注入异常来模拟测试环境。例如:应用停服、CPU 过高、内存过高、网络中断、网络流量延时等环境。

使用指南

https://help.aliyun.com/document_detail/102518.html

快速入门

安装PelicanDT SDK

  1. 将SDK添加到项目中
  2. 使用PelicanDT SDK有两种方式:
  • 下载SDK源码包,在下载中心下载最新版的JAVA SDK到本地,并import 到您的工作目录中。
  • 引入PelicanDT SDK依赖,通过maven二方库依赖的方式将PelicanDT的sdk加入到自己的项目中
      <dependency>
          <groupId>com.alibaba.pelican</groupId>
          <artifactId>PelicanDT</artifactId>
          <version>1.0.6</version>
      </dependency>
    

使用PelicanDT SDK

以下代码示例展示了使用PelicanDT SDK使用方式:

本地代码控制远程服务器执行命令:

  1. 创建并初始化RemoteCmdClient实例,RemoteCmdClient为远程服务器客户端。

  2. 填写远程服务器ip、userName、password信息

  3. 本地执行示例程序,向远程服务器执行pwd命令

         import com.alibaba.pelican.chaos.client.impl.RemoteCmdClient;
         import lombok.extern.slf4j.Slf4j;
         import org.junit.Test;
    
         /**
          * @author moyun@middleware
          */
         @Slf4j
         public class TestRemoteCmdClient {
    
             @Test
             public void testRemoteCmdClient() {
                 //ECS可公网访问的IP
                 String ip = "";
                 //ECS用户名,一般为root
                 String userName = "";
                 //ECS登录密码
                 String password = "";
    
                 //创建并初始化RemoteCmdClient实例
                 RemoteCmdClientConfig remoteCmdClientConfig = new RemoteCmdClientConfig();
                 remoteCmdClientConfig.setIp(ip);
                 remoteCmdClientConfig.setUserName(userName);
                 remoteCmdClientConfig.setPassword(password);
                 RemoteCmdClient client = new RemoteCmdClient(remoteCmdClientConfig);
    
                 //执行pwd命令
                 RemoteCmdResult resultInfo = client.execCmdWithPTY(new RemoteCmd("pwd"));
                 log.info(resultInfo.getStdInfo());
             }
         }
    
    

预期结果

日志输出内容如下

[root@iz2ze0kv2rqck9wpheu5vxz ~]$pwd
root
[root@iz2ze0kv2rqck9wpheu5vxz ~]$export HISTFILE=/dev/null
[root@iz2ze0kv2rqck9wpheu5vxz ~]$exit
logout

通过第2行内容可以看出,命令执行默认目录/root/


文章作者: Ciwei
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Ciwei !
 上一篇
mybatis自动生成插件 mybatis自动生成插件
better-mybatis-generator idea plugin插件功能:在idea的database工具中使用,选择表(一或n,建议n小于10),生成mybatis相关的代码,(包括:dao、example、domain、xml)
2019-01-26
下一篇 
Sentinel实战:如何对热点参数限流 Sentinel实战:如何对热点参数限流
Sentinel实战:如何对热点参数限流我们已经对单机限流和集群限流有过一定了解了,但是他们都是针对一些固定的资源进行流控的,在实际的应用场景中我们可能会遇到各种复杂的情况,不可能通过固定的资源来进行限流。 比如我们想要对一段时间内频繁访问
2019-01-20
  目录