如何启用sshpass输出到控制台

时间:2016-05-05 12:11:28

标签: scp sshpass

使用scp并以交互方式输入密码,文件复制进度将发送到控制台,但在脚本中使用sshpass来scp文件时没有控制台输出。

$ sshpass -p [password] scp [file] root@[ip]:/[dir]

似乎sshpass正在抑制或隐藏scp的控制台输出。有没有办法启用sshpass scp输出到控制台?

3 个答案:

答案 0 :(得分:1)

这样:

  

output = $(sshpass -p $ PASSWD scp -v $ filename root@192.168.8.1:/ root 2>& 1)

     

echo“输出= $输出”

您在变量输出中重定向控制台输出。

或者,如果您只想查看scp命令的控制台输出,则应在ssh pass cmd中仅添加-v命令:

  

sshpass -p $ PASSWD scp -v $ filename root@192.168.8.1:/ root

答案 1 :(得分:1)

不完全是所期望的,但比沉默更好:

SSHPASS="12345" sshpass -e  scp -v -r $FILES $DEST 2>&1 | grep -v debug1

请注意,-e被认为比-p更安全。

答案 2 :(得分:0)

sudo apt-get install expect

文件send-files.exp按预期工作:

#!/usr/bin/expect -f

spawn scp -r $FILES $DEST
match_max 100000
expect "*?assword:*"
send -- "12345\r"
expect eof