如何捕获/写入 - sFTP - PUT命令的成功/失败日志

时间:2018-02-02 01:42:12

标签: shell

在我的shell脚本中,sFTP put过程完成后。我需要检查PUT过程是成功完成还是失败。

1 个答案:

答案 0 :(得分:0)

根本不要使用expect

#!/usr/bin/env bash

batchfile=$(mktemp -t sftp-batchfile.XXXXXX) || exit
trap 'rm -f "$batchfile"' EXIT

cat >"$batchfile" <EOF
put test_file.txt $dest_location
bye
EOF

if sftp -b "$batchfile" "user@hostname"; then
  echo "The put succeeded"
else
  echo "The put failed"
fi

如SFTP手册页中所述,重点是:

  

最终使用格式允许使用-b选项进行自动会话。 在这种情况下,有必要配置非交互式身份验证以避免在连接时输入密码(有关详细信息,请参阅sshd(8)和ssh-keygen(1))。