在Shell脚本中,你可以使用expect命令来自动化输入密码。expect是一个用于自动化交互的工具,可以模拟用户输入来应对各种交互式命令行程序。

下面是一个使用expect的示例脚本:

#!/usr/bin/expect

# 连接到远程虚拟机
spawn ssh bxapp@172.2.2.22

# 期望看到的字符串,匹配到后发送后面的命令
expect "password: "
# 发送密码
send "your_password\r"
# 等待命令执行完成
expect eof

# 连接到另一台虚拟机
spawn ssh bxapp@172.2.2.4

# 期望看到的字符串,匹配到后发送后面的命令
expect "password: "
# 发送密码
send "your_password\r"
# 等待命令执行完成
expect eof

# 执行sftp命令并上传文件
spawn sftp -oPort=2222 user@172.2.1.9
# 期望看到的字符串,匹配到后发送后面的命令
expect "password: "
# 发送密码
send "your_password\r"
# 期望看到的字符串,匹配到后发送后面的命令
expect "sftp> "
# 发送上传文件命令
send "put filename\r"
# 等待命令执行完成
expect eof

请将其中的your_password替换为你的实际密码。这个脚本会自动化输入密码,并执行连接远程服务器和上传文件的操作。

你可以将上述内容保存为transfer_files.exp文件。然后,在Java中调用这个expect脚本执行即可。

更多推荐