如何通过shell脚本来检查或监控MYSQL数据库

如何通过shell脚本来检查或监控MYSQL数据库,第1张

db2 connect to [dbname] db2 "select min(a) from b" >t.txtdb2 terminatedate=`cat t.txt | tail -2 | head -1` echo $date

Mysql数据库的登录人数,需要查询Mysql系统表information_schema.processlist,里面有多少个记录,说明有多少个在线用户。我给一个可行的思路,直接在服务器crontab一个定时任务,任务可以用php cli写,也可以用python之类的脚本写,查询information_schema.processlist表,看看有多少个在线用户,如果大于100,则报警

@echo off&cls

color 03

@echo ***********************************************************************

@echo *Oracle表空间使用查看 *

@echo ***********************************************************************

@echo.

set /p databasename=数据库名:

set /p databaseusername=数据库用户名:

set /p databasepasswords=数据库密码:

set /p backupFilePath=结果文件存放路径(相对或绝对路径、可空):

@echo off&cls

@echo ***********************************************************************

@echo *Oracle表空间使用查看 *

@echo ***********************************************************************

if exist %temp%\CheckTablespaces_Sobey.sql del /f /q %temp%\CheckTablespaces_Sobey.sql

if "%backupFilePath%"=="" set backupFilePath=AutoCreateLookTablespacesFolder

if not exist %backupFilePath% md %backupFilePath%

set dataFilePath=%backupFilePath%\%databasename%

if exist %dataFilePath%.sql set dataFilePath=%backupFilePath%\%databasename%%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%

@echo spool %dataFilePath%.sql>>%temp%\CheckTablespaces_Sobey.sql

@echo set termout off>>%temp%\CheckTablespaces_Sobey.sql

@echo set linesize 200>>%temp%\CheckTablespaces_Sobey.sql

@echo set pagesize 200>>%temp%\CheckTablespaces_Sobey.sql

@echo SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "大小(MB)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用",TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') ^|^| '%' "使用比" FROM (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME, ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 1>>%temp%\CheckTablespaces_Sobey.sql

@echo spool off>>%temp%\CheckTablespaces_Sobey.sql

@echo exit>>%temp%\CheckTablespaces_Sobey.sql

sqlplus %databaseusername%/%databasepasswords%@%databasename% @%temp%\CheckTablespaces_Sobey.sql

if exist %temp%\CheckTablespaces_Sobey.sql del /f /q %temp%\CheckTablespaces_Sobey.sql

color 0a

@echo.

@echo ***********************************************************************

@echo * 执行完毕,请先检查是否有错误发生。

@echo * 请在:%dataFilePath%.sql中查看详细,谢谢!

@echo ***********************************************************************

@echo.

@echo 批处理中止

pause


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6769164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存