验证命令在 BASH 中通过 ssh 成功执行

Verify command successfully executes over ssh in BASH

如何验证 linux 命令是否在 ssh 服务器上成功执行?看下面的例子

ssh -qX 10.10.1.123 chmod -R 755 someDir/

我知道使用 return 代码(0 或 1)方法有效,但在某些情况下,上述命令执行但权限未更改。有没有更好的方法来验证是否执行成功并相应更改权限?

没有通用答案,因为没有通用问题。 ssh 不会 return 调用者成功,除非远程 child 给出成功的结果。

对于特定的问题,假设您的远程机器有一个版本的 chmod 可以错误地 return 不需要的成功退出状态,可以使用:

if [[ $(ssh 10.10.1.123 'find someDir/ ! -perm 755 -print -quit') ]]; then
  echo "At least one file under someDir did not have its permissions changed to 755" >&2
fi