Move getopts to utils.sh
diff --git a/collect-cpustat.sh b/collect-cpustat.sh
index 5cfe92d..85386d3 100644
--- a/collect-cpustat.sh
+++ b/collect-cpustat.sh
@@ -4,33 +4,13 @@
. "$PROGRAM_DIR/utils.sh"
load_config_file "$PROGRAM_DIR/performance-monitor.cfg"
load_config_file /etc/performance-monitor.cfg
-
-interval=5
-while getopts i:I:n: c
-do case "$c" in
- i)
- interval="$OPTARG"
- ;;
- I)
- HOSTNAME="`get_ip_address \"$OPTARG\"`"
- if [ -z "$HOSTNAME" ]; then
- printf "Cannot get IP address from interface '%s'\\n" "$OPTARG" 1>&2
- exit 1
- fi
- ;;
- n)
- HOSTNAME="$1"
- ;;
- \?)
- printf "Usage: %s [-i <interval>] [-I <interface>] [-n <hostname>]\\n" "$0" 1>&2
- exit 255
- ;;
-esac done
+handle_command_line_options "$@"
+[ -z "$INTERVAL" ] && INTERVAL=5
[ -z "$HOSTNAME" ] && HOSTNAME="`hostname`"
export LC_TIME=C
# Remove '-P ALL' to submit average value only
-sar -P ALL -u "$interval" | sed -ur -e "/^[0-9]{2}:[0-9]{2}:[0-9]{2}/!d" -e "s/[0-9]{2}:[0-9]{2}:[0-9]{2}.{4}//" | while read -r line; do
+sar -P ALL -u "$INTERVAL" | sed -ur -e "/^[0-9]{2}:[0-9]{2}:[0-9]{2}/!d" -e "s/[0-9]{2}:[0-9]{2}:[0-9]{2}.{4}//" | while read -r line; do
set -- $line
if [ $# != 7 ]; then
echo "data error: # $# != 7" 1>&2
diff --git a/collect-ifstat.sh b/collect-ifstat.sh
index 973a31c..5388da0 100644
--- a/collect-ifstat.sh
+++ b/collect-ifstat.sh
@@ -4,28 +4,8 @@
. "$PROGRAM_DIR/utils.sh"
load_config_file "$PROGRAM_DIR/performance-monitor.cfg"
load_config_file /etc/performance-monitor.cfg
-
-interval=5
-while getopts i:I:n: c
-do case "$c" in
- i)
- interval="$OPTARG"
- ;;
- I)
- HOSTNAME="`get_ip_address \"$OPTARG\"`"
- if [ -z "$HOSTNAME" ]; then
- printf "Cannot get IP address from interface '%s'\\n" "$OPTARG" 1>&2
- exit 1
- fi
- ;;
- n)
- HOSTNAME="$1"
- ;;
- \?)
- printf "Usage: %s [-i <interval>] [-I <interface>] [-n <hostname>]\\n" "$0" 1>&2
- exit 255
- ;;
-esac done
+handle_command_line_options "$@"
+[ -z "$INTERVAL" ] && INTERVAL=5
[ -z "$HOSTNAME" ] && HOSTNAME="`hostname`"
count=0
@@ -44,7 +24,7 @@
e_ifname="`printf %s \"$ifname\" | sed -r 's/[.-]/_/g'`"
eval "last_rx=\$last_rx_$e_ifname"
eval "last_tx=\$last_tx_$e_ifname"
- if [ -n "$last_rx" ] && [ -n "$last_tx" ] && [ $count = $interval ]; then
+ if [ -n "$last_rx" ] && [ -n "$last_tx" ] && [ $count = $INTERVAL ]; then
rx_diff=$((${2}-last_rx))
tx_diff=$((${10}-last_tx))
[ "$rx_diff" -lt 0 ] && rx_diff=0
@@ -55,7 +35,7 @@
eval "last_rx_$e_ifname=${2}"
eval "last_tx_$e_ifname=${10}"
done < /proc/net/dev
- if [ $count = $interval ]; then
+ if [ $count = $INTERVAL ]; then
count=0
else
count=$((count+1))
diff --git a/collect-iostat.sh b/collect-iostat.sh
index 1df3db7..51a02e3 100644
--- a/collect-iostat.sh
+++ b/collect-iostat.sh
@@ -4,32 +4,12 @@
. "$PROGRAM_DIR/utils.sh"
load_config_file "$PROGRAM_DIR/performance-monitor.cfg"
load_config_file /etc/performance-monitor.cfg
-
-interval=5
-while getopts i:I:n: c
-do case "$c" in
- i)
- interval="$OPTARG"
- ;;
- I)
- HOSTNAME="`get_ip_address \"$OPTARG\"`"
- if [ -z "$HOSTNAME" ]; then
- printf "Cannot get IP address from interface '%s'\\n" "$OPTARG" 1>&2
- exit 1
- fi
- ;;
- n)
- HOSTNAME="$1"
- ;;
- \?)
- printf "Usage: %s [-i <interval>] [-I <interface>] [-n <hostname>]\\n" "$0" 1>&2
- exit 255
- ;;
-esac done
+handle_command_line_options "$@"
+[ -z "$INTERVAL" ] && INTERVAL=5
[ -z "$HOSTNAME" ] && HOSTNAME="`hostname`"
export LC_TIME=C
-sar -b "$interval" | sed -ur -e "/^[0-9]{2}:[0-9]{2}:[0-9]{2}/!d" -e "s/[0-9]{2}:[0-9]{2}:[0-9]{2}.{4}//" | while read -r line; do
+sar -b "$INTERVAL" | sed -ur -e "/^[0-9]{2}:[0-9]{2}:[0-9]{2}/!d" -e "s/[0-9]{2}:[0-9]{2}:[0-9]{2}.{4}//" | while read -r line; do
set -- $line
if [ $# != 5 ]; then
echo "data error: # $# != 5" 1>&2
diff --git a/collect-loadavg.sh b/collect-loadavg.sh
index abea841..93a0d73 100644
--- a/collect-loadavg.sh
+++ b/collect-loadavg.sh
@@ -4,32 +4,12 @@
. "$PROGRAM_DIR/utils.sh"
load_config_file "$PROGRAM_DIR/performance-monitor.cfg"
load_config_file /etc/performance-monitor.cfg
-
-interval=5
-while getopts i:I:n: c
-do case "$c" in
- i)
- interval="$OPTARG"
- ;;
- I)
- HOSTNAME="`get_ip_address \"$OPTARG\"`"
- if [ -z "$HOSTNAME" ]; then
- printf "Cannot get IP address from interface '%s'\\n" "$OPTARG" 1>&2
- exit 1
- fi
- ;;
- n)
- HOSTNAME="$1"
- ;;
- \?)
- printf "Usage: %s [-i <interval>] [-I <interface>] [-n <hostname>]\\n" "$0" 1>&2
- exit 255
- ;;
-esac done
+handle_command_line_options "$@"
+[ -z "$INTERVAL" ] && INTERVAL=5
[ -z "$HOSTNAME" ] && HOSTNAME="`hostname`"
while true; do
http_post "${INFLUXDB_BASE_URL}write?db=$INFLUXDB_DB_NAME" \
"loadavg,host=$HOSTNAME `sed -r -e 's/^/avg1m=/' -e 's/ /,avg5m=/' -e 's/ /,avg15m=/' -e 's/ .+//' /proc/loadavg`"
- sleep "$interval"
+ sleep "$INTERVAL"
done
diff --git a/collect-memstat.sh b/collect-memstat.sh
index 0541b96..70af81d 100644
--- a/collect-memstat.sh
+++ b/collect-memstat.sh
@@ -4,32 +4,12 @@
. "$PROGRAM_DIR/utils.sh"
load_config_file "$PROGRAM_DIR/performance-monitor.cfg"
load_config_file /etc/performance-monitor.cfg
-
-interval=5
-while getopts i:I:n: c
-do case "$c" in
- i)
- interval="$OPTARG"
- ;;
- I)
- HOSTNAME="`get_ip_address \"$OPTARG\"`"
- if [ -z "$HOSTNAME" ]; then
- printf "Cannot get IP address from interface '%s'\\n" "$OPTARG" 1>&2
- exit 1
- fi
- ;;
- n)
- HOSTNAME="$1"
- ;;
- \?)
- printf "Usage: %s [-i <interval>] [-I <interface>] [-n <hostname>]\\n" "$0" 1>&2
- exit 255
- ;;
-esac done
+handle_command_line_options "$@"
+[ -z "$INTERVAL" ] && INTERVAL=5
[ -z "$HOSTNAME" ] && HOSTNAME="`hostname`"
export LC_TIME=C
-sar -r "$interval" | sed -ur -e "/^[0-9]{2}:[0-9]{2}:[0-9]{2}/!d" -e "s/[0-9]{2}:[0-9]{2}:[0-9]{2}.{4}//" | while read -r line; do
+sar -r "$INTERVAL" | sed -ur -e "/^[0-9]{2}:[0-9]{2}:[0-9]{2}/!d" -e "s/[0-9]{2}:[0-9]{2}:[0-9]{2}.{4}//" | while read -r line; do
set -- $line
if [ $# != 10 ]; then
echo "data error: # $# != 10" 1>&2
diff --git a/collect-nprocstat.sh b/collect-nprocstat.sh
index 4a83338..4621ce4 100644
--- a/collect-nprocstat.sh
+++ b/collect-nprocstat.sh
@@ -4,28 +4,8 @@
. "$PROGRAM_DIR/utils.sh"
load_config_file "$PROGRAM_DIR/performance-monitor.cfg"
load_config_file /etc/performance-monitor.cfg
-
-interval=5
-while getopts i:I:n: c
-do case "$c" in
- i)
- interval="$OPTARG"
- ;;
- I)
- HOSTNAME="`get_ip_address \"$OPTARG\"`"
- if [ -z "$HOSTNAME" ]; then
- printf "Cannot get IP address from interface '%s'\\n" "$OPTARG" 1>&2
- exit 1
- fi
- ;;
- n)
- HOSTNAME="$1"
- ;;
- \?)
- printf "Usage: %s [-i <interval>] [-I <interface>] [-n <hostname>]\\n" "$0" 1>&2
- exit 255
- ;;
-esac done
+handle_command_line_options "$@"
+[ -z "$INTERVAL" ] && INTERVAL=5
[ -z "$HOSTNAME" ] && HOSTNAME="`hostname`"
while true; do
@@ -39,5 +19,5 @@
echo $count
http_post "${INFLUXDB_BASE_URL}write?db=$INFLUXDB_DB_NAME" \
"procstat,host=$HOSTNAME nproc=$count"
- sleep "$interval"
+ sleep "$INTERVAL"
done
diff --git a/collect-procstat.sh b/collect-procstat.sh
index e68fa35..660ebcc 100644
--- a/collect-procstat.sh
+++ b/collect-procstat.sh
@@ -4,32 +4,12 @@
. "$PROGRAM_DIR/utils.sh"
load_config_file "$PROGRAM_DIR/performance-monitor.cfg"
load_config_file /etc/performance-monitor.cfg
-
-interval=5
-while getopts i:I:n: c
-do case "$c" in
- i)
- interval="$OPTARG"
- ;;
- I)
- HOSTNAME="`get_ip_address \"$OPTARG\"`"
- if [ -z "$HOSTNAME" ]; then
- printf "Cannot get IP address from interface '%s'\\n" "$OPTARG" 1>&2
- exit 1
- fi
- ;;
- n)
- HOSTNAME="$1"
- ;;
- \?)
- printf "Usage: %s [-i <interval>] [-I <interface>] [-n <hostname>]\\n" "$0" 1>&2
- exit 255
- ;;
-esac done
+handle_command_line_options "$@"
+[ -z "$INTERVAL" ] && INTERVAL=5
[ -z "$HOSTNAME" ] && HOSTNAME="`hostname`"
export LC_TIME=C
-sar -w "$interval" | sed -ur -e "/^[0-9]{2}:[0-9]{2}:[0-9]{2}/!d" -e "s/[0-9]{2}:[0-9]{2}:[0-9]{2}.{4}//" | while read -r line; do
+sar -w "$INTERVAL" | sed -ur -e "/^[0-9]{2}:[0-9]{2}:[0-9]{2}/!d" -e "s/[0-9]{2}:[0-9]{2}:[0-9]{2}.{4}//" | while read -r line; do
set -- $line
if [ $# != 2 ]; then
echo "data error: # $# != 2" 1>&2
diff --git a/collect-swapstat.sh b/collect-swapstat.sh
index 713f9ac..0794532 100644
--- a/collect-swapstat.sh
+++ b/collect-swapstat.sh
@@ -4,32 +4,12 @@
. "$PROGRAM_DIR/utils.sh"
load_config_file "$PROGRAM_DIR/performance-monitor.cfg"
load_config_file /etc/performance-monitor.cfg
-
-interval=5
-while getopts i:I:n: c
-do case "$c" in
- i)
- interval="$OPTARG"
- ;;
- I)
- HOSTNAME="`get_ip_address \"$OPTARG\"`"
- if [ -z "$HOSTNAME" ]; then
- printf "Cannot get IP address from interface '%s'\\n" "$OPTARG" 1>&2
- exit 1
- fi
- ;;
- n)
- HOSTNAME="$1"
- ;;
- \?)
- printf "Usage: %s [-i <interval>] [-I <interface>] [-n <hostname>]\\n" "$0" 1>&2
- exit 255
- ;;
-esac done
+handle_command_line_options "$@"
+[ -z "$INTERVAL" ] && INTERVAL=5
[ -z "$HOSTNAME" ] && HOSTNAME="`hostname`"
export LC_TIME=C
-sar -S "$interval" | sed -ur -e "/^[0-9]{2}:[0-9]{2}:[0-9]{2}/!d" -e "s/[0-9]{2}:[0-9]{2}:[0-9]{2}.{4}//" | while read -r line; do
+sar -S "$INTERVAL" | sed -ur -e "/^[0-9]{2}:[0-9]{2}:[0-9]{2}/!d" -e "s/[0-9]{2}:[0-9]{2}:[0-9]{2}.{4}//" | while read -r line; do
set -- $line
if [ $# != 5 ]; then
echo "data error: # $# != 5" 1>&2
diff --git a/utils.sh b/utils.sh
index 25eec09..6c65cba 100644
--- a/utils.sh
+++ b/utils.sh
@@ -20,3 +20,26 @@
[ -f "$1" ] || return
eval "`grep -Eo '^[A-Z0-9_]+=[-A-Za-z0-9_@" ./\\]+' \"$1\"`"
}
+
+handle_command_line_options() {
+ while getopts i:I:n: c
+ do case "$c" in
+ i)
+ INTERVAL="$OPTARG"
+ ;;
+ I)
+ HOSTNAME="`get_ip_address \"$OPTARG\"`"
+ if [ -z "$HOSTNAME" ]; then
+ printf "Cannot get IP address from interface '%s'\\n" "$OPTARG" 1>&2
+ exit 1
+ fi
+ ;;
+ n)
+ HOSTNAME="$1"
+ ;;
+ \?)
+ printf "Usage: %s [-i <interval>] [-I <interface>] [-n <hostname>]\\n" "$0" 1>&2
+ exit 255
+ ;;
+ esac done
+}