需要以编程方式检查数组中文件的分布情况。登录到主服务器,然后想使用简单的ssh检查worker上的文件。到目前为止,我有:
ssh $HOSTNAME "[ -e '$HOSTNAME:/directory/filename' ] && echo 'Exists'"
根据一些日志输出,我知道ssh是成功的,但我如何让测试向主服务器返回消息?运行以上操作不会返回任何结果。
SSH将使用与在远程主机上运行的命令相同的退出代码退出。如果该命令是一个测试,那么退出代码将与您通常期望的测试代码相匹配。
我建议如下:
- 简化您的命令,只通过SSH运行测试
- 在本地计算机上运行echo
- 把
$HOSTNAME:
放在你的道路前面似乎是不对的
ssh "$HOSTNAME" "test -e '/directory/filename'" && echo 'Exists'
我个人认为if
语句更容易理解,如果你愿意走这条路,这是一个可选的更改:
if ssh "$HOSTNAME" "test -e '/directory/filename'"; then
echo "Exists"
else
echo "Does not exist" >&2
exit 1
fi