首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行ssh并执行命令

运行ssh并执行命令
EN

Stack Overflow用户
提问于 2016-07-26 06:18:17
回答 1查看 464关注 0票数 0

使用heredoc在远程计算机上执行多行命令。试图获取服务器的pid以杀死位于远程计算机中的服务器。

代码语言:javascript
复制
#!/bin/bash

HOST_IP="10.180.5.23"
read -p "For HOST RESTART press 1" num
if [ "$num" == "1" ]
then
ssh -t -t $HOST_IP << 'EOSSH'
line=$(pgrep -f host_server1)
echo $line
arr=($line)
sudo kill -9 "${arr[1]}"
EOSSH
fi

错误:杀死:(15015) -不允许操作

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-26 06:27:34

这里的文件运行良好,但sudo期望您输入密码,并且没有连接到ssh的终端,该终端执行服务器上的命令。你有两个选择,两者都不是完全安全的:

  1. 允许服务器上的用户在没有密码的情况下进行sudo。
  2. 将来自heredoc的行放入服务器上的脚本中,并使其成为setui (粘着的),以便以root的形式执行。

这些通常适用于作为root用户运行的脚本。您的另一个特定于这种情况的选项是以运行服务器进程的用户的身份登录,这样您就不会得到不允许的操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38582308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档