我正在scp
脚本中从远程主机复制一些文件。我想知道是否有任何失败,最常见的原因是权限问题。被复制的文件属于不同的用户,有时用于更改文件权限的脚本不会运行。被复制的一组文件是一个可能为空的 glob,因此现在脚本包含一行如下内容scp -p remote:*.pattern curdir
。对于所有其他复制命令,我只是检查返回码,但这在这里不起作用,因为 glob 可能只是空的。检查 scp 是否具有非零返回码的最佳方法是什么,仅仅是因为没有与 glob 匹配的文件,而不是其他问题,例如父目录或文件本身的权限不良?
答案1
使用 ssh 显示远程主机上的文件列表是一种可能的解决方案:
ssh remote "find ./ -type f -name '*.pattern'"
然后,您可以将本地文件列表与远程文件列表进行比较,例如diff
,或wc -l
进行行数计算。