#!/bin/sh # # Collect sytem information and pass it on to the sitesummary server # using HTTP put. # https://svn.revolutionlinux.com/MILLE/XTERM/trunk/mille-xterm-getltscfg/src/getltscfg.script set -e PATH=/sbin:/usr/sbin:/bin:/usr/bin export PATH # Make sure the output from programs is well known. LC_ALL=C export LC_ALL umask 0077 # Make sure to store files in a ramfs backed # storage area on diskless clients, so use /tmp/. tmpdir="$(mktemp -d -p /tmp)" trap 'rm -rf "${tmpdir}"' EXIT log() { msg="$@" echo "$msg" logger -p user.info -t sitesummary-client "$msg" } error() { msg="$@" log "error: $msg" } # Check or get GPG key, return false if it is unavailable get_gpg_key_if_missing() { url="$1" true } gpg_encrypt_for_url() { url="$1" infile="$2" outfile="$2" return GPGOPTS="--no-default-keyring --keyring $urlkeyring" gpg $GPGOPTS -e $infile > $outfile } # Read the package default [ -f /usr/share/sitesummary/sitesummary-client.conf ] && \ . /usr/share/sitesummary/sitesummary-client.conf for confdir in \ /usr/share/sitesummary/config.d \ /etc/sitesummary/config.d do [ -d $confdir ] || continue for config in $confdir/* ; do [ -f "$config" ] && . "$config" done done mkdir "${tmpdir}/output" cd "${tmpdir}/output" for fragdir in $fragdirs ; do [ -d "$fragdir" ] || continue for frag in "$fragdir/"*; do [ -x "$frag" ] && "$frag" || true done done # Wrap up the package hostsummaryfile="${tmpdir}/output.tar.gz" tar zcf "${hostsummaryfile}" . for url in $serverurls ; do if [ "$gpgencrypt" != false ] ; then if get_gpg_key_if_missing $url ; then error "gpg key for '$url' is unavailable. refusing to submit." continue fi gpg_encrypt_for_url $url "$hostsummaryfile" "$hostsummaryfile.gpg" hostsummaryfile="$hostsummaryfile.gpg" fi #WGETOPTS="--no-check-certificate" if sitesummary-upload -u $url -f $hostsummaryfile -d; then : else error "unable to submit to '$url'" fi done