Java远程调用Linuc命令例子

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.io.Serializable;
import java.net.SocketException;
import org.apache.commons.net.telnet.TelnetClient;
public class NetTelnet implements Serializable
{
private static final long serialVersionUID = 1896318870151927893L;

private TelnetClient telnet = new TelnetClient();

private InputStream in;

private PrintStream out;

private char prompt = '$';

public NetTelnet(String ip, int port, String user, String password)
throws SocketException, IOException
{
this.telnet.connect(ip, port);
this.in = this.telnet.getInputStream();
this.out = new PrintStream(this.telnet.getOutputStream());

this.prompt = (user.equals("root") ? '#' : '$');
System.out.println("test....");
login(user, password);
}

public void login(String user, String password) throws IOException
{
readUntil("login:");
write(user);
readUntil("Password:");
write(password);
readUntil(this.prompt + " ");
}

public String readUntil(String pattern) throws IOException
{
char lastChar = pattern.charAt(pattern.length() - 1);
StringBuffer sb = new StringBuffer();
char ch = (char) this.in.read();

while (true)
{
sb.append(ch);
if ((ch == lastChar) && (sb.toString().endsWith(pattern)))
{
return sb.toString();
}

ch = (char) this.in.read();

}

}

public void write(String value)
{
this.out.println(value);
this.out.flush();
}

public String sendCommand(String command) throws IOException
{
write(command);
return readUntil(this.prompt + " ");
}

public void disConnection() throws IOException
{
this.telnet.disconnect();
}

public static void main(String[] args)
{
try
{
System.out.println("启动Telnet...");
String ip = "10.71.181.227";
int port = 23;
String user = "root";
String password = "ngbss123";
NetTelnet telnet = new NetTelnet(ip, port, user, password);
telnet.sendCommand("export LANG=en");
String r1 = telnet.sendCommand("who");
String r2 = telnet.sendCommand("pwd");
String r3 = telnet.sendCommand("sh a.sh");

System.out.println("显示结果");
System.out.println(r1);
System.out.println(r2);
System.out.println(r3);

telnet.disConnection();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值