Linux vmi1507467.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 SOFT :ApachePHP :8.0.30/bin/84.21.171.84 UPLOAD download-mibs #!/bin/bash set -e set -o pipefail SMISTRIP=/usr/bin/smistrip CONFDIR=/etc/snmp-mibs-downloader . $CONFDIR/snmp-mibs-downloader.conf download_mibs() { TMP="$(mktemp -d)" if [ ! -z "$ARCHIVE" ]; then ARCHTMP="$(mktemp -d)" if [ "$ARCHTYPE" == "dirgz" ]; then if [ ! -z "$HOST" ]; then echo "Downloading a whole directory with compressed content" echo "is not supported." exit 1 else cp "$DIR/$ARCHIVE"/* "$ARCHTMP/" gzip -d "$ARCHTMP"/* || /bin/true fi else if [ ! -z "$HOST" ]; then wget -O "$ARCHTMP/$ARCHIVE" -q -nv "$HOST/$DIR/$ARCHIVE" else cp "$DIR/$ARCHIVE" "$ARCHTMP/$ARCHIVE" fi case "$ARCHTYPE" in tar) tar -C "$ARCHTMP" -xf "$ARCHTMP/$ARCHIVE" ;; tgz) tar -C "$ARCHTMP" -xzf "$ARCHTMP/$ARCHIVE" ;; zip) unzip -d "$ARCHTMP" "$ARCHTMP/$ARCHIVE" ;; esac fi fi while read -r file mibs; do if [ "$file" != "#" ]; then if [ ! -z "$PREFIX" ]; then file="$PREFIX$file" fi if [ ! -z "$SUFFIX" ]; then file="$file$SUFFIX" fi if [ -z "$ARCHIVE" ]; then archive_fetcher=(wget -O - -q -nv "$HOST/$DIR/$file") else archive_fetcher=(cat "$ARCHTMP/$ARCHDIR/$file") fi "${archive_fetcher[@]}" \ | tr -d \\r \ | $SMISTRIP -v -a -d "$TMP" -m "$mibs" - fi done <"$CONFDIR/$CONF" if [ ! -z "$DIFF" ]; then patch -d "$TMP" <"$CONFDIR/$DIFF" fi if [ ! -d "$BASEDIR/$DEST" ]; then mkdir -p "$BASEDIR/$DEST" fi cp "$TMP"/* "$BASEDIR/$DEST" rm -f "$BASEDIR/$DEST/.index" rm -fr "$TMP" if [ ! -z "$ARCHTMP" ]; then rm -rf "$ARCHTMP" fi } list_mibs() { while read -r file mibs; do if [ "$file" = "#" ]; then continue fi echo "$mibs" | tr ':' '\n' done <"$CONFDIR/$CONF" } MODE='get' while [ $# -gt 0 ]; do case $1 in --get) MODE='get' ;; --list) MODE='list' ;; *) break esac shift done if [ $MODE = get ]; then echo "" echo "Downloading documents and extracting MIB files." echo "This will take some minutes." echo "" echo "In case this process fails, it can always be repeated later by executing" echo "$0 again." echo "" fi sources=$1 if [ -z "$sources" ]; then sources="$AUTOLOAD" fi for i in $sources; do TMP= ARCHTMP= HOST= DIR= CONF= DEST= DIFF= PREFIX= SUFFIX= ARCHIVE= ARCHTYPE= ARCHDIR= . "$CONFDIR/$i.conf" if [ $MODE = list ]; then list_mibs else download_mibs fi done BASE64 : NO YES