Bash脚本:在远程服务器中执行unix命令
我正在尝试从服务器A登录到服务器B,并使用shell脚本在服务器B上执行简单的UNIX命令。代码如下。但是ls-al显示的是服务器A的结果,而不是登录到服务器B的结果。非常感谢您的任何输入。谢谢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 当它到达命令末尾时
#!/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主机名