首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BASH脚本-通过ssh连接并运行mysql命令

问BASH脚本-通过ssh连接并运行mysql命令
EN

Stack Overflow用户
提问于 2016-04-18 14:57:02
回答 2查看 1.9K关注 0票数 1

我正在尝试创建一个简单的bash脚本,它将对许多客户端进行平分。如果客户端不可达,则应在另一台服务器上的db上启动更新.我对db服务器有无密码的ssh访问权限,因此我尝试执行以下操作:

代码语言:javascript
复制
for i in {11..25}
do
        if      ping -q -c 1 192.168.42.$i > /dev/null 2>&1
        then
                echo 1
        else
                ip=192.168.42.$i
                ssh admin@192.168.3.240 "mysql  -u parkuser -ppass -e 'update SMARTPARK.client SET online=0 where SMARTPARK.ip_client=$ip'"
        fi

done

我在使用它时得到了一个bash: mysql: command not found错误.显然,mysql安装在db服务器上。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-18 15:12:26

对我来说似乎挺好的。由于您得到的命令没有找到错误,所以可能是ssh上的$PATH出现了问题。尝试手动连接,并运行which mysql以获得可执行文件的完整路径。在我的例子中,它是/usr/bin/mysql,然后您可以尝试在语句中使用它,例如:

代码语言:javascript
复制
ssh admin@192.168.3.240 "/usr/bin/mysql -u parkuser -ppass -e 'update SMARTPARK.client SET online=0 where SMARTPARK.ip_client=$ip '"
票数 0
EN

Stack Overflow用户

发布于 2016-04-18 15:03:10

单引号在单引号中,应该是单引号:

代码语言:javascript
复制
ssh admin@192.168.3.240 "mysql  -u parkuser -ppass -e 'update SMARTPARK.client SET online=0 where SMARTPARK.ip_client=$ip '"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36697557

复制
相关文章

相似问题

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