加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

unix – 使用SSH在远程计算机上发出多个命令的其他方法?

发布时间:2020-12-15 22:40:09 所属栏目:安全 来源:网络整理
导读:似乎在 this question,答案是用分号分隔语句.但是,如果我们使用多个if语句和复杂的引用字符串进入复杂的脚本,那么这可能会变得很麻烦.我想. 我想另一个替代方案是简单地一个接一个地发出多个SSH命令,但这又是麻烦的,而且我没有设置公钥/私钥认证,所以这将要
似乎在 this question,答案是用分号分隔语句.但是,如果我们使用多个if语句和复杂的引用字符串进入复杂的脚本,那么这可能会变得很麻烦.我想.

我想另一个替代方案是简单地一个接一个地发出多个SSH命令,但这又是麻烦的,而且我没有设置公钥/私钥认证,所以这将要求密码多次.

我理想的情况与交互式shell体验非常相似:在脚本中的某一点上你会进入@the_remote_server并提示你输入的密码(交互式地)然后从那一点开始直到你的脚本发布“exit”命令,脚本中的所有命令都在远程机器上解释.

当然这不起作用:

ssh user@host.com
  cd some/dir/on/remote/machine
  tar -xzf my_tarball.tgz
  cd some/other/dir/on/remote
  cp -R some_directory somewhere_else
exit

还有另一种选择吗?我想我可以从我的脚本中取出那部分并将其粘贴到远程主机上的脚本中.咩.现在我正在维护两个脚本.另外,我想要一个小配置文件来保存默认值和其他东西,我也不想在两个地方维护它.

还有其他解决方案吗?

解决方法

使用heredoc.

ssh user@host.com << EOF
cd some/dir/on/remote/machine
tar -xzf my_tarball.tgz
cd some/other/dir/on/remote
cp -R some_directory somewhere_else
EOF

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读