在SSH上使用bash引用复杂命令行

时间:2019-07-04 10:19:14

标签: bash ssh nagios

我正在尝试使用SSH在Windows框中运行远程命令,但我希望将结果提取到check_generic中,以便将其放入Nagios监视中,但是在引用该命令时遇到问题,想知道是否有人可以帮忙。

要正常运行命令,我将运行:

ssh administrator@192.168.1.5 '"%PG_HOME%/thirdparty/pgsql-9.1/bin/psql.exe" -hlocalhost -p27778 -ddb_cache -Uuser -t -c "select count(*) from table where send_status = 4;"'

我需要PG_HOME进行扩展,就像上面那样。

好吧,现在我要通过名为check_generic的bash脚本运行它,它使用-e参数来使脚本运行并对其进行一些分析。

但是,我遇到的问题是远程Windows框正在扩展%PG_HOME%,然后它抱怨命令行中的空间,因为PG_HOME包含“ C:\ Program Files”

另一个问题是count(*),因为外壳要吃掉括号。

我很累:

./check_generic -c '> 0' -e 'ssh administrator@192.168.1.5 \'"%PG_HOME%/thirdparty/pgsql-9.1/bin/psql.exe" -hlocalhost -p27778 -ddb_cache -Uuser -t -c "select count(*) from send where send_status = 4;"\''

但是它抱怨外壳不完整,如果我摘下最后一个'-t可以检查通用而不是ssh

有什么想法吗?非常感谢。

0 个答案:

没有答案