使用java来执行scp命令,但是中间要输入远程主机的密码,要怎么处理才能让命令顺利执行不中断呢?
[b]问题补充:[/b]
能说的具体点么?linux我还不太熟悉,最好能贴个代码过来看看,谢谢!
楼主是想用Process.getOutputStream()得到子进程的标准输入流然后把密码写进去么?子进程在没有得到输入的时候会阻塞,而通过标准输入流把信息写过去之后它就能继续执行了……
使用expect这个。可以把密码作为命令写进去。
[code="java"]
#!/user/bin/expect -f
for {set i 1} {$i<=30} {incr i} {
spawn ssh -l root 125.1.1.$i
expect "*password: "
sleep 5
send "QwErT\r"
send "find / -name hao.txt\r"
interact
}
[/code]