此程序的目的是执行远程机器上的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
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调用工具类: