java调用远程机器的shell脚本

此程序的目的是执行远程机器上的Shell脚本。

【环境参数】
远程机器IP:192.168.174.129
用户名:root
密码:root
Shell脚本的路径:/root/test/test.sh

【具体步骤】
1、在远程机器上,准备Shell脚本。
2、修改test.sh的文件权限,确保可执行

3、开启远程机器的sshd的权限

步骤:

1、修改sshd_config文件,命令为:vi /etc/ssh/sshd_config 

2、将#PasswordAuthentication no的注释去掉,并且将NO修改为YES 

3、将#PermitRootLogin yes的注释去掉 

4、重新启动SSH服务,命令为:/etc/init.d/sshd restart 

5、验证SSH服务状态,命令为:/etc/init.d/sshd status 

 

若没有开启sshd服务,会提示以下这样的错误:

java.io.IOException: Password authentication failed. 
at ch.ethz.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:300) 
at ch.ethz.ssh2.Connection.authenticateWithPassword(Connection.java:309) 
at test.demo.TestSSH.main(TestSSH.java:19) 
Caused by: java.io.IOException: Authentication method password not supported by the server at this stage. 
at ch.ethz.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:270) 
... 2 more 

 
sh脚本内容:
 
echo [`date +'%Y-%m-%d %H:%M:%S'`]' start loading data...'
echo [`date +'%Y-%m-%d %H:%M:%S'`]' end loading data...'
exit
复制代码

 

2、导入需要依赖的jar包。
Java远程调用Shell脚本这个程序需要ganymed-ssh2-build210.jar包。
下载地址:http://www.ganymed.ethz.ch/ssh2/
为了调试方便,可以将\ganymed-ssh2-build210\src下的代码直接拷贝到我们的工程里,
此源码的好处就是没有依赖很多其他的包,拷贝过来干干净净。


3、java调用工具类:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值