Mysql 将从属状态\G显示到输出文件'/tmp/slavestatus.txt';;

Mysql 将从属状态\G显示到输出文件'/tmp/slavestatus.txt';;,mysql,bash,Mysql,Bash,是否可以使用mysql命令“show slave status;”写入outfile 我有20多台服务器,我正在编写一个bash脚本来检查所有服务器上的复制。我需要将所有数据输出到本地服务器上的一个文件中 到目前为止,这就是我所拥有的,但我不知道如何将数据管道化到一个可以运行正则表达式的文件中 #!/bin/bash for ((server=8100; server <= 8121; server++)); do ssh pos$server <<-ENDE

是否可以使用mysql命令“show slave status;”写入outfile

我有20多台服务器,我正在编写一个bash脚本来检查所有服务器上的复制。我需要将所有数据输出到本地服务器上的一个文件中

到目前为止,这就是我所拥有的,但我不知道如何将数据管道化到一个可以运行正则表达式的文件中

#!/bin/bash

for ((server=8100; server <= 8121; server++)); do
        ssh pos$server <<-ENDEXP
                mysql -u root -p12345 pos_master_prod
                show slave status \G
                \q
        ENDEXP
done
#/bin/bash

对于((server=8100;server从命令提示符运行mysql查询的正常方法是使用-e选项。因此,这将起作用:

ssh pos$server "mysql -u root -p12345 pos_master_prod -e 'show slave status \G'" >> output.log
更新:关于“到输出文件”部分,语法中不允许使用。在mysql提示符下尝试“将从属状态显示到输出文件‘xxx’”,将导致以下错误:
第1行的错误1064(42000):您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行的“入出文件”xxx“附近使用的正确语法。我的要求与您相同,并最终使用了它。基本上是@Chandranshu设置,但使用T将数据导入文件

mysql -u root -p'rootpw' pos_master_prod 'show slave status \G' | tee slavestatus.log

Tee默认安装在我的ubuntu设备上,否则您当然可以从apt get或yum之类的存储库中获取它。

为什么不设置nagios来监控mysql复制?这是一个非常好的工具,您可以在线找到大量资源来监控复制并以多种标准格式输出数据。