简体   繁体   English

SSH到远程Linux以获取mysql查询命令

[英]ssh to remote Linux for mysql query command

I am using ssh key to login to remote Linux server to get result of some commands. 我正在使用ssh键登录到远程Linux服务器,以获取某些命令的结果。 This part is working fine. 这部分工作正常。 Now I have made a bash script which actually query an DB size of mysql server on that remote linux server. 现在,我制作了一个bash脚本,该脚本实际上查询该远程linux服务器上mysql服务器的数据库大小。 Script is as follows. 脚本如下。

#!/bin/bash
# Script to query mysql stats
#set -x
HOST="192.168.0.1"
USER="root"
PASS="PASSSSS"
DB="radius"
CMD=`ssh -p 12345 $HOST mysql -u$HOST -p$PASS --skip-column-names -e "SELECT table_schema "$DB", sum(data_length + index_length)/1024/1024  FROM information_schema.TABLES WHERE table_schema='radius' GROUP BY table_schema;"`
F=`echo $CMD | cut -f1 -d"." | sed 's/[^0-9]*//g'`
echo $F
echo $F

But when I run this script. 但是,当我运行此脚本时。 it gives following error 它给出以下错误

# ./qmysql.sh
bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `mysql -u192.168.0.1 -pPASSSS --skip-column-names -e SELECT table_schema radius, sum(data_length + index_length)/1024/1024  FROM information_schema.TABLES WHERE table_schema='radius' GROUP BY table_schema;'

You have some Problems with quotes. 您在报价方面有一些问题。

Try something like 尝试类似

... "SELECT table_schema \"$DB\", sum( ...

尝试将`替换为“,并跳过所有引号

 CMD="ssh -p 12345 $HOST mysql -u$HOST -p$PASS --skip-column-names -e \"SELECT table_schema \"$DB\", sum(data_length + index_length)/1024/1024  FROM information_schema.TABLES WHERE table_schema='radius' GROUP BY table_schema;\""

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM