使用scp时出错

我在我的shell脚本中使用“scp”命令。 如果该命令不起作用,如何获取错误日志。

这是我如何使用它的scp file username@servername:/specificdirectory/

如果您在运行scp遇到错误,请尝试首先对服务器执行sshscp没有对新密钥的优雅处理,而ssh默认情况下会有更详细的错误报告。

要获得更详细的日志,请尝试使用-v运行它:

 scp -v文件用户名@ servername:/ specificdirectory /

你还必须记住,以/开始的path是绝对的,而不是相对于你的主目录,因此你可能想尝试:

 scp文件username @ servername:specificdirectory /

bash得到debugging输出的一个好方法是使用set -x 。 通常,任何结果都将输出到STDOUT或STDERR 。 如何捕获将取决于您的脚本如何执行。 根据bash(1)手册页:

  -x After expanding each simple command, for command, case command, select command, or arithmetic for command, display the expanded value of PS4, followed by the com- mand and its expanded arguments or associated word list. 

通常unix环境中的程序会将错误写入标准错误输出。 所以你可以像这样执行你的命令:

 scp -v file username@servername:/specificdirectory/ 2> scp_error.log