如何在远程服务器上执行多个命令并获取输出?

卡拉

我需要在远程计算机上执行一些命令,并且已经在本地计算机上编写了这样的脚本。

基本上,我正在docker images本地计算机上,并希望检查那些图像是否存在于远程服务器中。

我需要将不存在的Docker映像(远程服务器)获取到我的本地计算机。为此,我使用了下面提到的代码,但对我而言不起作用。

#!/bin/sh
declare array=$(docker images)
sshpass -p 'password' ssh -t [email protected] << EOF
declare List=""
while read -r line; do
  if [ -z $(docker images -q $line) ]; then
    List="$List $line"
  else
    continue
  fi
done <<< "$array"
EOF

我希望List变量位于我的本地计算机中。

谁能帮我解决这个问题?
非常感谢您的帮助。
此致。

三元组

一旦远程外壳退出,您在远程外壳中所做的任何操作都不会出现在本地外壳中。您可以做的是让远程shell打印输出并捕获该输出。

顺便说一句,您不能在/bin/sh脚本中使用数组,但实际上我们在这里不需要数组。

#!/bin/sh
docker images |
sshpass -p 'password' ssh -t [email protected] '
  while read -r line; do
    # Suction: docker images -q image should return nonzero exit status
    # if the named image is missing.  We work around that by grepping
    # for whether there is any output at all.
    docker images -q "$line" | grep -q . || echo "$line"
  done'

这只是打印出结果;将其捕获到变量中或将其重定向到文件中以对其进行更多处理,或者仅将其通过管道传递到另一个本地while read -r循环中。

如果重构此参数,以便对身份验证详细信息进行参数设置,则可以对许多主机运行它。您可以将其另存为可执行脚本,以便可以从任何其他工具中调用它,也可以将其另存为函数(如果您仅在有限的上下文中需要它)。

missing () {
    docker images -q |
    "$@" 'while read -r line; do          
        docker images -q "$line" | grep -q . || echo "$line"
    done'
}

现在,您可以为一个或多个主机调用它:

missing sshpass -p 'password' ssh -t [email protected] |
xargs -r -n 1 docker pull

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在几台服务器上远程执行多个命令?

来自分类Dev

如何使用 PuTTY 从远程 SSH 服务器上的 PHP 中执行的命令获取结果?

来自分类Dev

如何在远程服务器上轻松执行R命令?

来自分类Dev

如何在远程服务器上执行“ php artisan migration”和其他Laravel命令?

来自分类Dev

如何在远程服务器上执行“ php artisan migration”和其他Laravel命令?

来自分类Dev

当我也有本地运行的TMUX时,如何在远程服务器上执行TMUX命令?

来自分类Dev

golang:在远程服务器上执行shell命令

来自分类Dev

通过SSH在远程服务器上执行命令

来自分类Dev

Ansible不在远程服务器上执行命令

来自分类Dev

Capistrano 3在远程服务器上执行任意命令

来自分类Dev

命令无法在远程服务器上正确执行

来自分类Dev

Ansible不在远程服务器上执行命令

来自分类Dev

Bash for循环以在远程服务器上执行命令

来自分类Dev

groovy 在远程服务器上执行 shell 命令

来自分类Dev

如何轻松地在远程服务器上执行R命令?

来自分类Dev

从远程服务器上的本地服务器执行IMPDP命令时出现问题

来自分类Dev

如何使CI服务器在远程服务器上执行Powershell脚本

来自分类Dev

在本地然后在远程服务器上执行Ansible执行命令

来自分类Dev

在远程服务器终止连接之前执行远程命令

来自分类Dev

如何在远程服务器上管理Laravel 4

来自分类Dev

如何在远程服务器上使用GUI工具?

来自分类Dev

如何在远程服务器上保留终端颜色?

来自分类Dev

如何在远程 linux 服务器上运行 bash

来自分类Dev

如何在每位用户的Ubuntu服务器上创建远程桌面服务器

来自分类Dev

在远程服务器上使用shell变量执行awk命令

来自分类Dev

使用批处理文件和PuTTY在远程服务器上执行sftp命令

来自分类Dev

在远程服务器上使用shell变量执行awk命令

来自分类Dev

本地执行的脚本可以在远程服务器上运行命令吗?

来自分类Dev

通过2个脚本在远程服务器上执行命令

Related 相关文章

  1. 1

    如何在几台服务器上远程执行多个命令?

  2. 2

    如何使用 PuTTY 从远程 SSH 服务器上的 PHP 中执行的命令获取结果?

  3. 3

    如何在远程服务器上轻松执行R命令?

  4. 4

    如何在远程服务器上执行“ php artisan migration”和其他Laravel命令?

  5. 5

    如何在远程服务器上执行“ php artisan migration”和其他Laravel命令?

  6. 6

    当我也有本地运行的TMUX时,如何在远程服务器上执行TMUX命令?

  7. 7

    golang:在远程服务器上执行shell命令

  8. 8

    通过SSH在远程服务器上执行命令

  9. 9

    Ansible不在远程服务器上执行命令

  10. 10

    Capistrano 3在远程服务器上执行任意命令

  11. 11

    命令无法在远程服务器上正确执行

  12. 12

    Ansible不在远程服务器上执行命令

  13. 13

    Bash for循环以在远程服务器上执行命令

  14. 14

    groovy 在远程服务器上执行 shell 命令

  15. 15

    如何轻松地在远程服务器上执行R命令?

  16. 16

    从远程服务器上的本地服务器执行IMPDP命令时出现问题

  17. 17

    如何使CI服务器在远程服务器上执行Powershell脚本

  18. 18

    在本地然后在远程服务器上执行Ansible执行命令

  19. 19

    在远程服务器终止连接之前执行远程命令

  20. 20

    如何在远程服务器上管理Laravel 4

  21. 21

    如何在远程服务器上使用GUI工具?

  22. 22

    如何在远程服务器上保留终端颜色?

  23. 23

    如何在远程 linux 服务器上运行 bash

  24. 24

    如何在每位用户的Ubuntu服务器上创建远程桌面服务器

  25. 25

    在远程服务器上使用shell变量执行awk命令

  26. 26

    使用批处理文件和PuTTY在远程服务器上执行sftp命令

  27. 27

    在远程服务器上使用shell变量执行awk命令

  28. 28

    本地执行的脚本可以在远程服务器上运行命令吗?

  29. 29

    通过2个脚本在远程服务器上执行命令

热门标签

归档