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
+}