格式,语法,我从另一篇文章[这里] [1]获得 Collecting the output of a remote ssh command in a variable:
我正在尝试获取文件夹内容的列表,并将它们与特定进程的列表进行比较。我需要知道所有IHS / WAS所需实例是否按预期运行。我无法使用特定的IHS或WAS命令,因为我无权访问这些命令。我对系统的读取权限有限,并且正在编写脚本以获取已安装,正在运行的实例的列表。
下面是我的代码:
#!/bin/bash
HOST='xyzhostname'
$vari=$(ssh -T $HOST <<'EOF'
printf "getting folders: \n"
instances=$(ls /samplefolder/samplefolder/)
printf "got folders.\n"
printf "${instances}"
EOF
)
随后将有更多代码来获取进程(ps -ef .....)并与在上述实例中获得的每个文件夹进行比较...
运行此代码时出现以下错误
./test.sh: line 9: =getting: command not found
希望对此有所帮助。
答案 0 :(得分:0)
我通过使用以下代码使其工作,但是一直很忙,因此无法返回并发布。
现在,我正在寻找一种同时登录多台服务器的方法,这样我就可以更快地从所有服务器获得结果,而不必一一遍遍。
我在并行化循环中遍历了几个链接,但了解得不多。.有人可以帮我这个忙吗?最后,我无法使用&,因为我需要在循环中处理数据,而不仅仅是两行。我需要能够触发多个ssh命令并将res附加到文件中。
env="abcd" # assigned from user input
for HOST in $servers; do
# printf "\nConnecting and fetching information from $HOST"
res=$(ssh -T -q $HOST "bash -s $env" <<'EOF'
env=$1
servername=$(hostname)
wasinstances=$(ls -d /logfolder/WAS??/* 2> /dev/null | cut -d/ -f4)
for instance in $instances; do
inscount=$(ps -ef | grep -v grep | grep -c $instance)
# build a result variable
done
printf "${result}"
EOF
)
# do something with res
done