Linux 当我运行一个包含ssh';,然后运行类似wget的命令,它保存在源服务器而不是目标服务器上?
我有以下bash脚本Linux 当我运行一个包含ssh';,然后运行类似wget的命令,它保存在源服务器而不是目标服务器上?,linux,bash,ssh,Linux,Bash,Ssh,我有以下bash脚本 #!/bin/bash ssh -o "StrictHostKeyChecking no" ubuntu@$1 cd /home/ubuntu wget google.com 当我运行它时,/test.sh我通过ssh连接到远程服务器,但是wget命令不会运行,除非我按下ctrl+d,然后ssh会话退出,index.html文件保存到/home/ubuntu 如何更改此bash脚本,以便在远程服务器上保存index.html文件?脚本的作用: 打开到指定主机的交互式连接
#!/bin/bash
ssh -o "StrictHostKeyChecking no" ubuntu@$1
cd /home/ubuntu
wget google.com
当我运行它时,/test.sh
我通过ssh连接到远程服务器,但是wget
命令不会运行,除非我按下ctrl+d,然后ssh会话退出,index.html
文件保存到/home/ubuntu
如何更改此bash脚本,以便在远程服务器上保存index.html
文件?脚本的作用:
- 打开到指定主机的交互式连接
- 等待连接完成(这就是为什么必须按Ctrl-D键)
- 在本地执行一些命令
run.sh
#!/bin/sh
cd /home/ubuntu
wget google.com
在本地主机上的脚本中:
ssh -o "StrictHostKeyChecking no" ubuntu@$1 run.sh
脚本的作用:
- 打开到指定主机的交互式连接
- 等待连接完成(这就是为什么必须按Ctrl-D键)
- 在本地执行一些命令
run.sh
#!/bin/sh
cd /home/ubuntu
wget google.com
在本地主机上的脚本中:
ssh -o "StrictHostKeyChecking no" ubuntu@$1 run.sh
只需在
ssh
的命令行中指定要执行的命令:
ssh -o "StrictHostKeyChecking no" ubuntu@$1 'cd /home/ubuntu; wget google.com'
只需在
ssh
的命令行中指定要执行的命令:
ssh -o "StrictHostKeyChecking no" ubuntu@$1 'cd /home/ubuntu; wget google.com'
您对bash的概念有很大的误解。Bash不是一种创建宏来为您键入内容的方法。Bash是一种脚本语言,它将在本地计算机上执行一系列命令。这意味着它将运行一个连接到远程主机的ssh命令。一旦ssh脚本执行完毕,bash将执行cd,然后执行wget 您要做的是将命令传递给远程ssh服务器
#!/bin/bash
ssh -o "StrictHostKeyChecking no" ubuntu@$1 "cd /home/ubuntu; wget google.com"
您对bash的概念有很大的误解。Bash不是一种创建宏来为您键入内容的方法。Bash是一种脚本语言,它将在本地计算机上执行一系列命令。这意味着它将运行一个连接到远程主机的ssh命令。一旦ssh脚本执行完毕,bash将执行cd,然后执行wget 您要做的是将命令传递给远程ssh服务器
#!/bin/bash
ssh -o "StrictHostKeyChecking no" ubuntu@$1 "cd /home/ubuntu; wget google.com"
我也喜欢你简洁的方式,如果你只需要运行两个命令,编写一个脚本可能会有点过分。@cnicutar这正是我要对你的答案发表评论的地方,但最后我拒绝了;-)我也喜欢你简洁的方式,如果你只需要运行两个命令,编写一个脚本可能会有点过分。@cnicutar这正是我要对你的答案发表评论的地方,但最后我拒绝了;-)