Visit Our UNIX and Linux User Community


Need wrapper around mysql query


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need wrapper around mysql query
# 1  
Old 09-05-2017
Need wrapper around mysql query

Hello Friends,

I am using check_mysql_query plugin in nagios to query database and get output. query is working fine but output which i am getting contain query. I want to remove query from output and give custom message which will be simple and understandable.

Can you help me here with any bash script or wrapper to use around to avoid query in output.
below is my query output.
Code:
QUERY OK: 'SELECT 0 as elapsed union SELECT avg(elapsed) as elapsed  FROM elapsed_total where datetime_a > adddate(now(),INTERVAL -1200 minute) order by 1 desc limit 1' returned 0.000000 | result=0.000000;1800.000000;3600.000000;


Last edited by vbe; 09-05-2017 at 12:56 PM..
# 2  
Old 09-05-2017
Hi,

Depending on the version of check_mysql_query you're running, you might not need a wrapper necessarily. If you check the man page, you'll see there are a few flags that might be helpful here, such as:

Code:
-m --message Message to output after result. Can take a printf string with a single substitution (defaults to 'query returned') 
-n --message-prepend Display message before rather than after result (prepend)
-s --short Shorten output, do not output message just result

So you might very well be able to define your own custom output format or use the short output form to avoid having the query returned in the plugin output, if you're running a recent enough version of the plugin.

Hope this helps. If not, then there are other options, such (as you say) wrapping the whole thing in a Bash script, but with any luck just by using the appropriate flags you can avoid going down that road.
# 3  
Old 09-06-2017
currently its running with
heck_mysql_query v2.1.1 (nagios-plugins 2.1.1). its does not have above option.

any idea how to use wrapper here.

Last edited by ghpradeep; 09-06-2017 at 07:28 AM..
# 4  
Old 09-06-2017
Hi,

OK, you could generally wrap this in a script by doing something like this.

Code:
#!/bin/bash

check_mysql_query.pl <whatever your arguments are> >/dev/null 2>/dev/null
returned=$?

if [ "$returned" == "0" ]
then
     echo “OK”
     exit 0
elif [ "$returned" == "1" ]
then
     echo “WARNING”
     exit 1
elif [ "$returned" == "2" ]
then
     echo “CRITICAL”
     exit 2
else
     echo "UNKNOWN"
     exit 3
fi

You don’t strictly need to capture $? into $returned here, I just did it to make things a bit more readable for you.

So the idea is:
  1. Run your plugin
  2. Capture the return code
  3. Respond accordingly

Hope this helps.
# 5  
Old 09-06-2017
Well, you do, if you want to compare it more than once, since $? is overwritten every time you execute a program or statement.

This is an ideal place to use a case statement though:

Code:
case "$?" in
0) # statement zero code
   # statement zero code
   ;;
1) # statement one code
   # statement one code
   ;;
2) # statement two code
   # statement two code
   ;;
*) # All other cases
   # All other cases
   ;;
esac

This User Gave Thanks to Corona688 For This Post:
# 6  
Old 09-07-2017
Thanks for reply. its solved my purpose.

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. Programming

Need help in mysql query

Hi All, i have a table in mysql with the following data Table name Test Assettype Serial_No Status location Mouse 123456 In Stock chennai Mouse 98765 Allocated chennai Keyboard ... (2 Replies)
Discussion started by: venkitesh
2 Replies

2. Programming

mysql query help

Hello i have created mysql query to compare to values and get difference in percentage as following: SELECT file_name, 100 - ((100 * (SELECT file_count FROM xipi_files z WHERE x.file_group = z.file_group AND x.file_name = z.file_name AND z.insert_date = CURDATE( ) - INTERVAL 1 DAY)) /... (1 Reply)
Discussion started by: mogabr
1 Replies

3. Shell Programming and Scripting

mysql query in shellscript

Hi, I want to run below query on shellscript but having one problm. ADV=$( mysql -h "$IP_ADDR" -u "$USER_NAME" "$TABLE_NAME" -BNe" SELECT ADV FROM indata where inid='$INSTRUID' and Date='$latest Date';" ) here Date column contans different below dates 2011-12-01... (11 Replies)
Discussion started by: aish11
11 Replies

4. Programming

need to modify Mysql query

Hi, I want to run below query on shellscript but having one problm. ADV=$( mysql -h "$IP_ADDR" -u "$USER_NAME" "$TABLE_NAME" -BNe" SELECT ADV FROM indata where inid='$INSTRUID' and Date='$latest Date';" ) here Date column contans different below dates 2011-12-01... (0 Replies)
Discussion started by: aish11
0 Replies

5. Web Development

mysql query help

hello all i have 2 columns every column in the following format column1 2011-04-01 11:39:54 column2 2019-02-03 00:00:00 i want get difference between above data as following 2 days 11:39 how to do so ? i tried many functions but nothing works please advice what is the query... (6 Replies)
Discussion started by: mogabr
6 Replies

6. Web Development

Complex MySQL Query(s)

Hi all, I have a bit of an issue, I am working on a bit of a CMDB for a friend, it's to do with real estate. Anyway, this is my situation. I have a table which contains all the properties (forsale, sold, etc) in the DB named "property". Now, this is what I want to achieve, I wish to... (5 Replies)
Discussion started by: STOIE
5 Replies

7. Programming

How to query one to many mysql

Hi there, I have a hierarchical database that include 4 tables. Table A is the parent of B, B is Parent of C, C is parent of D. If I want to query everything in D that is associated with A.name, how do I do that? Thanks! YanYan (0 Replies)
Discussion started by: pinkgladiator
0 Replies

Featured Tech Videos