diff --git a/aggregateweather.py b/aggregateweather.py index 6d2909a..d77edf7 100755 --- a/aggregateweather.py +++ b/aggregateweather.py @@ -14,14 +14,14 @@ import sys def usage(): print( "Usage: " + __file__ + - "[--config path_to_file.ini] [--station smhi_station_number ] --db database] [--host dbhost] [--user dbuser] [--password dbpassword]\n" + "[--config path_to_file.ini] [--station smhi_station_number ] --database database] [--host dbhost] [--user dbuser] [--password dbpassword]\n" "Default configfile is weather.ini, any parameter can be overwritten on the command line" ) parser = argparse.ArgumentParser() parser.add_argument('--config') -parser.add_argument('--db') +parser.add_argument('--database') parser.add_argument('--host') parser.add_argument('--user') parser.add_argument('--password') @@ -32,7 +32,7 @@ if args.config: config_file = args.config config = configparser.ConfigParser() config.read(config_file) -db = config['MySQL']['db'] +db = config['MySQL']['database'] host = config['MySQL']['host'] user = config['MySQL']['user'] password = config['MySQL']['password'] @@ -50,8 +50,8 @@ if args.station: station = args.station if not station: station = "97100" -if args.db: - db = args.db +if args.database: + db = args.database if args.host: host = args.host if not host: @@ -94,7 +94,7 @@ csv = "date,T_max,T_min,T_mean,RH_max,RH_min,RH_mean,Rainfall\n" for i in dates: working_date = i[0].strftime('%Y-%m-%d') day_select = ('SELECT * FROM weather ' - 'WHERE date = "{}"'.format(working_date)) + 'WHERE date = "{}" AND station = {}'.format(working_date,station)) cursor.execute(day_select) day = cursor.fetchall() sum_rain = 0 diff --git a/check_rainfall.sh b/check_rainfall.sh new file mode 100644 index 0000000..d85434f --- /dev/null +++ b/check_rainfall.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +while getopts “:w:c:” opt; do + case $opt in + w) warn=$OPTARG ;; + c) crit=$OPTARG ;; + esac +done + +aweekago=$(date -d "7 days ago" +%Y-%m-%d) +now=$(date +%Y-%m-%d) +diff=$(mysql --defaults-extra-file=weather.ini -NBs -e "SELECT avg(Rainfall - ETo) FROM aggregated_weather WHERE Date BETWEEN \"${aweekago}\" AND \"${now}\"" ${db}) + +OK=0 +WARNING=1 +CRITICAL=2 +UNKNOWN=3 + +state=${OK} +msg="OK:" +if [[ "x${warn}" == "x" ]]; then + warn=-0.5 +fi +if [[ "x${crit}" == "x" ]]; then + crit=-2 +fi + + + +if (( $(echo "${diff} < ${warn}" |bc -l) )); then + state=${WARNING} + msg="WARNING:" +fi +if (( $(echo "${diff} < ${crit}" |bc -l) )); then + state=${CRITICAL} + msg="CRITICAL:" +fi + +echo "${msg} Rainfall - evapotransipration is ${diff}|diff=${diff};${warn};${crit}" +exit ${state} diff --git a/getweather.py b/getweather.py index 925558e..fb70e6e 100755 --- a/getweather.py +++ b/getweather.py @@ -11,7 +11,7 @@ import sys def usage(): print( "Usage: " + __file__ + - "[--config path_to_file.ini] [--station smhi_station_number] [--period latest-hour|latest-day|latest-months] [--db database] [--host dbhost] [--user dbuser] [--password dbpassword]\n" + "[--config path_to_file.ini] [--station smhi_station_number] [--period latest-hour|latest-day|latest-months] [--database database] [--host dbhost] [--user dbuser] [--password dbpassword]\n" "Default configfile is weather.ini, any parameter can be overwritten on the command line" ) @@ -20,7 +20,7 @@ parser = argparse.ArgumentParser() parser.add_argument('--config') parser.add_argument('--station') parser.add_argument('--period') -parser.add_argument('--db') +parser.add_argument('--database') parser.add_argument('--host') parser.add_argument('--user') parser.add_argument('--password') @@ -30,7 +30,7 @@ if args.config: config_file = args.config config = configparser.ConfigParser() config.read(config_file) -db = config['MySQL']['db'] +db = config['MySQL']['database'] host = config['MySQL']['host'] user = config['MySQL']['user'] password = config['MySQL']['password'] @@ -49,8 +49,8 @@ if not period: if period not in ["latest-hour", "latest-day", "latest-months"]: period = "latest-day" -if args.db: - db = args.db +if args.database: + db = args.database if args.host: host = args.host if not host: diff --git a/weather.ini b/weather.ini index e9a2267..f746030 100644 --- a/weather.ini +++ b/weather.ini @@ -1,5 +1,5 @@ [MySQL] -db = weather +database = weather host = localhost user = your_user_name password = secret_password