Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash脚本:在远程服务器中执行unix命令_Bash_Shell_Unix - Fatal编程技术网

Bash脚本:在远程服务器中执行unix命令

Bash脚本:在远程服务器中执行unix命令,bash,shell,unix,Bash,Shell,Unix,我正在尝试从服务器A登录到服务器B,并使用shell脚本在服务器B上执行简单的UNIX命令。代码如下。但是ls-al显示的是服务器A的结果,而不是登录到服务器B的结果。非常感谢您的任何输入。谢谢 #!/bin/bash clear sshpass -p password ssh hostname ls -al exit 如果您只想在远程服务器上运行ls-al,请将其与ssh命令放在同一行,如 sshpass -p password ssh hostname ls -al 当它到达命令末尾时

我正在尝试从服务器A登录到服务器B,并使用shell脚本在服务器B上执行简单的UNIX命令。代码如下。但是ls-al显示的是服务器A的结果,而不是登录到服务器B的结果。非常感谢您的任何输入。谢谢

#!/bin/bash

clear
sshpass -p password ssh hostname
ls -al
exit

如果您只想在远程服务器上运行
ls-al
,请将其与
ssh
命令放在同一行,如

sshpass -p password ssh hostname ls -al
当它到达命令末尾时,它将自动退出,因此您无需放入
exit


另外,如果您要这样做,并且不想以交互方式输入密码,那么您可能希望查看共享公钥/私钥并使用它,这样它就不会要求密码(除非您的私钥受到密码保护)

如果您只想在远程服务器上运行
ls-al
,将它与
ssh
命令放在同一行,如下所示

sshpass -p password ssh hostname ls -al
当它到达命令末尾时,它将自动退出,因此您无需放入
exit


另外,如果您要这样做,并且不想以交互方式输入密码,那么您可能希望查看共享公钥/私钥并使用它,这样它就不会要求密码(除非您的私钥受到密码保护)

如果您只想在远程服务器上运行
ls-al
,将它与
ssh
命令放在同一行,如下所示

sshpass -p password ssh hostname ls -al
当它到达命令末尾时,它将自动退出,因此您无需放入
exit


另外,如果您要这样做,并且不想以交互方式输入密码,那么您可能希望查看共享公钥/私钥并使用它,这样它就不会要求密码(除非您的私钥受到密码保护)

如果您只想在远程服务器上运行
ls-al
,将它与
ssh
命令放在同一行,如下所示

sshpass -p password ssh hostname ls -al
当它到达命令末尾时,它将自动退出,因此您无需放入
exit


另外,如果您要这样做,并且不想以交互方式输入密码,您可能希望查看共享公钥/私钥并使用它,这样它就不会要求输入密码(除非您使用密码保护私钥)

当shell解释脚本文件时,它会创建一个子进程来 执行每个命令行。因此,
sshpass-p password ssh hostname
之后的命令行在
ssh
会话到主机名,但在bash实例所在的主机中 跑步

要实现您想要的功能,您可以检查usage行并注意有一个
[command]
参数,该参数表示:

如果指定了命令,则改为在远程主机上执行该命令 一个登录shell

因此,一种方法是
sshpass-p password ssh hostname ls-la
。另一种可以提供更多灵活性的方法是:

#!/bin/bash

clear
cat | sshpass -p password ssh hostname <<EOF
ls -la
EOF
#/bin/bash
清楚的

cat | sshpass-p password ssh hostname当shell解释脚本文件时,它会创建一个子进程 执行每个命令行。因此,
sshpass-p password ssh hostname
之后的命令行在
ssh
会话到主机名,但在bash实例所在的主机中 跑步

要实现您想要的功能,您可以检查usage行并注意有一个
[command]
参数,该参数表示:

如果指定了命令,则改为在远程主机上执行该命令 一个登录shell

因此,一种方法是
sshpass-p password ssh hostname ls-la
。另一种可以提供更多灵活性的方法是:

#!/bin/bash

clear
cat | sshpass -p password ssh hostname <<EOF
ls -la
EOF
#/bin/bash
清楚的

cat | sshpass-p password ssh hostname当shell解释脚本文件时,它会创建一个子进程 执行每个命令行。因此,
sshpass-p password ssh hostname
之后的命令行在
ssh
会话到主机名,但在bash实例所在的主机中 跑步

要实现您想要的功能,您可以检查usage行并注意有一个
[command]
参数,该参数表示:

如果指定了命令,则改为在远程主机上执行该命令 一个登录shell

因此,一种方法是
sshpass-p password ssh hostname ls-la
。另一种可以提供更多灵活性的方法是:

#!/bin/bash

clear
cat | sshpass -p password ssh hostname <<EOF
ls -la
EOF
#/bin/bash
清楚的

cat | sshpass-p password ssh hostname当shell解释脚本文件时,它会创建一个子进程 执行每个命令行。因此,
sshpass-p password ssh hostname
之后的命令行在
ssh
会话到主机名,但在bash实例所在的主机中 跑步

要实现您想要的功能,您可以检查usage行并注意有一个
[command]
参数,该参数表示:

如果指定了命令,则改为在远程主机上执行该命令 一个登录shell

因此,一种方法是
sshpass-p password ssh hostname ls-la
。另一种可以提供更多灵活性的方法是:

#!/bin/bash

clear
cat | sshpass -p password ssh hostname <<EOF
ls -la
EOF
#/bin/bash
清楚的
cat | sshpass-p密码ssh主机名