【问题标题】:How to run multiple commands with SSH on a remote server in a bash script? [duplicate]如何在 bash 脚本中的远程服务器上使用 SSH 运行多个命令? [复制]
【发布时间】:2019-10-25 00:55:14
【问题描述】:

我想运行一个脚本来检查远程服务器上是否存在特定文件夹,然后将该服务器中特定文件中的特定行 greps 到本地计算机。

if ssh -t -t user@server [ -d /etc/nginx ]; then
      ssh -t -t  user@server 
ls -1a /etc/nginx/conf.d | grep $1 | xargs cat | grep specific_line | grep  .specific-extension | awk '{print $2}'
fi 

我用awk '{print $2}'打印出grepd行的第二行

所以我希望它成为我本地机器的输出,或者更好的是我想把它放在脚本中的一个变量中。

我在互联网上没有找到任何可以解决这个问题的简化版本。

我在服务器上启用了 PSK,所以我在 ssh 时不必输入密码。

【问题讨论】:

  • 不要使用 grep 来处理ls 的输出——见ParsingLs
  • ...无论如何,您能否提供有关您要完成的工作的更多详细信息?我会冒险all你的grep/cat/etc。可以用单个远程find ... -exec awk 命令替换。

标签: bash ssh grep pipe remote-server


【解决方案1】:

我刚刚在 Python 中使用 paramiko 做了类似的事情。我在几分钟内测试了数百个 IP 上的许多帐户的 sudo 权限。您可以运行该命令并获取标准输入、标准输出和标准错误。这应该会让你朝着正确的方向开始?

如果有帮助,您也可以使用登录名和证书。

【讨论】:

    猜你喜欢
    • 2010-11-03
    • 2021-09-04
    • 2015-05-16
    • 2016-11-01
    • 2019-05-18
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多