summaryrefslogtreecommitdiff
path: root/sysutils/bsdstats/files/300.statistics.in
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/bsdstats/files/300.statistics.in')
-rw-r--r--sysutils/bsdstats/files/300.statistics.in446
1 files changed, 0 insertions, 446 deletions
diff --git a/sysutils/bsdstats/files/300.statistics.in b/sysutils/bsdstats/files/300.statistics.in
deleted file mode 100644
index a1ed194e508c..000000000000
--- a/sysutils/bsdstats/files/300.statistics.in
+++ /dev/null
@@ -1,446 +0,0 @@
-#!/bin/sh -
-#
-# $FreeBSD: /tmp/pcvs/ports/sysutils/bsdstats/files/300.statistics.in,v 1.39 2007-10-16 04:34:49 scrappy Exp $
-#
-
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
- periodic_conf=/etc/periodic.conf
-else
- . /etc/rc.conf # For systems without periodic.conf, use rc.conf
- if [ -r /etc/rc.conf.local ]
- then
- . /etc/rc.conf.local
- fi
- periodic_conf=/etc/rc.conf.local
-fi
-
-oldmask=$(umask)
-umask 066
-
-version="5.2"
-checkin_server=${monthly_statistics_checkin_server:-"rpt.bsdstats.org"}
-bsdstats_log=${monthly_statistics_logfile:-"/var/log/bsdstats"}
-id_token_file='/var/db/bsdstats'
-
-PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
-export PATH
-
-unset HTTP_USER_AGENT
-
-IFS="
-"
-
-random () {
- jot -r 1 0 900
-}
-
-# RFC 2396
-uri_escape () {
- echo ${1+$@} | sed -e '
- s/%/%25/g
- s/;/%3b/g
- s,/,%2f,g
- s/?/%3f/g
- s/:/%3a/g
- s/@/%40/g
- s/&/%26/g
- s/=/%3d/g
- s/+/%2b/g
- s/\$/%24/g
- s/,/%2c/g
- s/ /%20/g
- '
-}
-
-do_fetch () {
- url="http://$checkin_server/scripts/$1"
- case $(uname) in
- FreeBSD )
- /usr/bin/fetch -q -o - "$url"
- ;;
- * )
- /usr/bin/ftp -V -o - "$url"
- ;;
- esac
-}
-
-check_dns () {
- if [ `dig bsdstats.org txt | grep TXT | grep UP | wc -l` = 0 ]
- then
- echo "DNS not reachable, Network Down?"
- exit
- fi
-}
-
-send_devices () {
- case $(uname) in
- FreeBSD )
- for line in `/usr/sbin/pciconf -l`
- do
- DRIVER=`echo $line | awk -F\@ '{print $1}'`
- DEV=`echo $line | awk '{print $4}' | cut -c8-15`
- CLASS=`echo $line | awk '{print $2}' | cut -c9-14`
- query_string=$query_string`echo \&dev[]=$DRIVER:$DEV:$CLASS`
- done
-
- report_devices
- ;;
- * )
- # Not supported
- ;;
- esac
-}
-
-send_ports () {
- case $(uname) in
- FreeBSD )
- for line in `/usr/sbin/pkg_info | /usr/bin/awk '{print $1}' `
- do
- category=`grep "@comment ORIGIN" /var/db/pkg/${line}/+CONTENTS | sed -E 's/^\@comment ORIGIN:(.+)\/.+/\1/g'`
- line=$(uri_escape $line)
- category=$(uri_escape $category)
- query_string=$query_string`echo \&port[]=${category}:${line}`
- done
-
- report_ports
- ;;
- * )
- # Not supported
- ;;
- esac
-}
-
-report_ports () {
- # Handle HTTP proxy services
- #
- # HTTP_PROXY/http_proxy can take the following form:
- # [http://][username:password@]proxy[:port][/]
- # Authentication details may also be provided via HTTP_PROXY_AUTH:
- # HTTP_PROXY_AUTH="basic:*:username:password"
- #
-
- if [ -z "$HTTP_PROXY" -a -n "$http_proxy" ]; then
- HTTP_PROXY=$http_proxy
- fi
- if [ -n "$HTTP_PROXY" ]; then
- # Attempt to resolve any HTTP authentication
- if [ -n "$HTTP_PROXY_AUTH" ]; then
- PROXY_AUTH_USER=`echo $HTTP_PROXY_AUTH | sed -E 's/^.+:\*:(.+):.+$/\1/g'`
- PROXY_AUTH_PASS=`echo $HTTP_PROXY_AUTH | sed -E 's/^.+:\*:.+:(.+)$/\1/g'`
- else
- # Check for authentication within HTTP_PROXY
- HAS_HTTP_AUTH=`echo $HTTP_PROXY | sed -E 's/^(http:\/\/)?(.+:.+@)?.+/\2/'`
- if [ -n "$HAS_HTTP_AUTH" ]; then
- # Found HTTP authentication details
- PROXY_AUTH_USER=`echo $HAS_HTTP_AUTH | cut -d: -f1`
- PROXY_AUTH_PASS=`echo $HAS_HTTP_AUTH | cut -d: -f2`
- fi
- fi
-
- # Determine the proxy components
- PROXY_HOST=`echo $HTTP_PROXY | sed -E 's/^(http:\/\/)?(.+:.+@)?([^@:]+)(:.+)?/\3/'`
- PROXY_PORT=`echo $HTTP_PROXY | sed -E 's/^(http:\/\/)?(.+:.+@)?(.+):([0-9]+)/\4/' | sed -e 's/[^0-9]//g'`
- if [ -z "$PROXY_PORT" ]; then
- # Use default proxy port
- PROXY_PORT=3128
- fi
- fi
-
- # Determine the host/port netcat should connect to
- if [ -n "$PROXY_HOST" -a -n "$PROXY_PORT" ]; then
- nc_host=$PROXY_HOST
- nc_port=$PROXY_PORT
- url_prefix="http://${checkin_server}"
- else
- nc_host=$checkin_server
- nc_port=80
- fi
-
- # Proxy authentication, if required
- if [ -n "$PROXY_AUTH_USER" -a -n "$PROXY_AUTH_PASS" ]; then
- auth_base64=`echo "$PROXY_AUTH_USER:$PROXY_AUTH_PASS" | openssl base64`
- proxy_auth="Proxy-Authorization: Basic $auth_base64
-"
- fi
-
-
- # Make the request
- string_length=`echo ${query_string} | wc -m`
- string_length=`expr ${string_length} - 1`
-
- echo "POST ${url_prefix}/scripts/report_ports.php HTTP/1.0
-Host: ${checkin_server}
-User-Agent: bsdstats ${version}
-Connection: close
-${proxy_auth}Content-Type: application/x-www-form-urlencoded
-Content-Length: ${string_length}
-
-token=${TOKEN}&key=${KEY}${query_string}" | \
- nc $nc_host $nc_port | \
- grep STATUS= | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- STATUS)
- if [ $val = "OK" ]
- then
- echo "[`date`] System Ports reported"
- else
- echo "[`date`] System Ports not reported, exiting"
- exit
- fi
- ;;
- *)
- echo "[`date`] Error with fetch to server"
- exit
- ;;
- esac
- done
- } >> $bsdstats_log
-
-}
-
-report_devices () {
- do_fetch report_devices.php?token=$TOKEN\&key=$KEY$query_string | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- STATUS)
- if [ $val = "OK" ]
- then
- echo "[`date`] System Devices reported"
- else
- echo "[`date`] System Devices not reported, exiting"
- exit
- fi
- ;;
- *)
- echo "[`date`] Error with fetch to server"
- exit
- ;;
- esac
- done
- } >> $bsdstats_log
-}
-
-get_id_token () {
- if [ -f $id_token_file ]
- then
- if [ `cat /var/db/bsdstats | wc -l` -lt 3 ]
- then
- rm $id_token_file
- fi
- fi
-
- if [ ! -f $id_token_file -o ! -s $id_token_file ] ;
- then
- IDTOKEN=$(uri_escape $( openssl rand -base64 32 ) )
-
- idf=$( mktemp "$id_token_file.XXXXXX" ) && \
- chown root:wheel $idf && \
- chmod 600 $idf
-
- do_fetch getid.php?key=$IDTOKEN | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- KEY)
- echo "KEY=$val"
- ;;
- TOKEN)
- echo "TOKEN=$val"
- ;;
- *)
- ;;
- esac
- done
- echo "VERSION=$version"
- } > $idf && \
-
- mv $idf $id_token_file
- if [ ! -s $id_token_file ] ;
- then
- echo "Nothing returned from $checkin_server"
- exit 1
- fi
- fi
- . $id_token_file
- KEY=$( uri_escape $KEY )
- TOKEN=$( uri_escape $TOKEN )
-}
-
-
-enable_token () {
- do_fetch enable_token.php?key=$TOKEN\&token=$KEY | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- STATUS)
- if [ $val = "OK" ]
- then
- echo "[`date`] System enabled"
- else
- echo "[`date`] System not enabled, exiting"
- exit
- fi
- ;;
- *)
- echo "[`date`] Error with fetch to server"
- exit
- ;;
- esac
- done
- } >> $bsdstats_log
-}
-
-disable_token () {
- do_fetch disable_token.php?key=$TOKEN\&token=$KEY | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- STATUS)
- if [ $val = "OK" ]
- then
- echo "[`date`] System disabled"
- else
- echo "[`date`] System not disabled, exiting"
- exit
- fi
- ;;
- *)
- echo "[`date`] Error with fetch to server"
- exit
- ;;
- esac
- done
- } >> $bsdstats_log
-}
-
-report_system () {
- do_fetch report_system.php?token=$TOKEN\&key=$KEY\&rel=$REL\&arch=$ARCH\&opsys=$OS | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- STATUS)
- if [ $val = "OK" ]
- then
- echo "[`date`] System reported"
- else
- echo "[`date`] System report failed, exiting"
- exit
- fi
- ;;
- *)
- echo "[`date`] Error with fetch to server"
- exit
- ;;
- esac
- done
- } >> $bsdstats_log
-}
-
-report_cpu () {
- do_fetch report_cpu.php?token=$TOKEN\&key=$KEY\&cpus=$count\&vendor=$VEN\&cpu_type=$DEV | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- STATUS)
- if [ $val = "OK" ]
- then
- echo "[`date`] System CPU reported"
- else
- echo "[`date`] System CPU report failed, exiting"
- exit
- fi
- ;;
- *)
- echo "[`date`] Error with fetch to server"
- exit
- ;;
- esac
- done
- } >> $bsdstats_log
-}
-case "$monthly_statistics_enable" in
- [Yy][Ee][Ss])
- check_dns
- HN=`/bin/hostname`
- REL=`/usr/bin/uname -r`
- ARCH=`/usr/bin/uname -m`
- OS=`/usr/bin/uname -s`
- get_id_token
- test X"$1" = X-nodelay || sleep `random`
- enable_token
- report_system
- echo "Posting monthly OS statistics to $checkin_server"
- if [ X"$1" != X-nodelay ]; then
- case "$monthly_statistics_report_devices" in
- [Yy][Ee][Ss])
- send_devices
- echo "Posting monthly device statistics to $checkin_server"
- line=$( sysctl -n hw.model )
- VEN=$( echo $line | cut -d ' ' -f 1 )
- DEV=$( uri_escape $( echo $line | cut -d ' ' -f 2- ) )
- count=$( sysctl -n hw.ncpu )
- report_cpu
- echo "Posting monthly CPU statistics to $checkin_server"
- ;;
- *)
- echo "Posting monthly device/CPU statistics disabled"
- echo " set monthly_statistics_report_devices=\"YES\" in $periodic_conf"
- ;;
- esac
- case "$monthly_statistics_report_ports" in
- [Yy][Ee][Ss])
- send_ports
- echo "Posting monthly ports statistics to $checkin_server"
- ;;
- *)
- echo "Posting monthly ports statistics disabled"
- echo " set monthly_statistics_report_ports=\"YES\" in $periodic_conf"
- ;;
- esac
- fi
- disable_token
- ;;
- *)
- echo "Posting monthly OS statistics disabled"
- echo " set monthly_statistics_enable=\"YES\" in $periodic_conf"
- ;;
-esac
-
-umask $oldmask
-exit $rc