====== openQRM - HardWare-Info's ======
==== etc/init.d/openqrm-plugin-hardwareinfos ====
...
function openqrm_plugin_hardwareinfos_init() {
echo "Initializing the openQRM hardwareinfos-plugin"
# linking the web dir
ln -sf $OPENQRM_SERVER_BASE_DIR/openqrm/plugins/hardwareinfos/web $OPENQRM_WEBSERVER_DOCUMENT_ROOT/openqrm/base/plugins/hardwareinfos
# linking the boot-service
ln -sf $OPENQRM_SERVER_BASE_DIR/openqrm/plugins/hardwareinfos/web/boot-service-hardwareinfos.tgz $OPENQRM_WEBSERVER_DOCUMENT_ROOT/openqrm/boot-service/boot-service-hardwareinfos.tgz
#------------------------------------------------------------------------------#
# weitere Vorbereitungen
aptitude update && aptitude -y safe-upgrade && aptitude -y install mysql-client coreutils sed hostname net-tools findutils grep dmidecode wget bash
cp $OPENQRM_SERVER_BASE_DIR/openqrm/plugins/hardwareinfos/bin/hardwareinfos.sh /usr/share/openqrm/web/boot-service/hardwareinfos.sh
WWWDIR="$(echo "$(cat $(ls $(cat $(apache2 -V | egrep 'HTTPD_ROOT|SERVER_CONFIG_FILE' | awk -F'"' '{print $2}' | tr -s '\n' '/' | sed 's#/$##') | egrep '^Include' | fgrep -v '^$' | sed -e 's#^Include[ ]*##' -e 's#.*/$#&\*#')) | egrep -i 'DocumentRoot' | awk '{print $NF}' | sort | uniq | head -n1)")"
CGIBIN="$(cat $(ls $(cat $($(which httpd;which apache2) -V | egrep 'HTTPD_ROOT|SERVER_CONFIG_FILE' | awk -F'"' '{print $2}' | tr -s '\n' '/' | sed 's#/$##') | egrep '^Include' | fgrep -v '^$' | sed -e 's#^Include[ ]*##' -e 's#.*/$#&\*#')) | egrep -v '^#|DirectoryMatch' | egrep '/cgi-bin[/]*$' | sed -e 's#"##g' -e 's#[<>]*##g' | awk '{sub("/$","");print $NF}' | sort | uniq | head -n1)"
if [ -d "${CGIBIN}" ] ;then
sed -e -i "s#CGIBIN=.*#CGIBIN='${CGIBIN}'#" $OPENQRM_SERVER_BASE_DIR/openqrm/plugins/hardwareinfos/etc/hardwareinfos.cfg
sed -e -i "s#WWWDIR=.*#WWWDIR='${WWWDIR}'#" $OPENQRM_SERVER_BASE_DIR/openqrm/plugins/hardwareinfos/etc/hardwareinfos.cfg
fi
if [ -d "${WWWDIR}" ] ;then
echo "\";
echo \"Fehler=\$retval
\";
?>
" > ${WWWDIR}/store.php
#------------------------------------------------------------------------------#
fi
...
==== store.php ====
echo "\";
echo \"Fehler=\$retval
\";
?>"
==== cgi-bin/remconstab_aendern.cgi ====
#!/bin/sh
. /usr/share/openqrm/etc/openqrm-server.conf
. $OPENQRM_SERVER_BASE_DIR/openqrm/plugins/hardwareinfos/etc/openqrm-server.cfg
DATENDATEI="$(mktemp /tmp/remconstab.XXXXXXXXXXXX)"
### POST-Daten werden in eine Datei geschrieben
echo "$(dd bs=1 count=${CONTENT_LENGTH} 2> /dev/null | tr -s '&' '\n')" | tr -d '"' | awk '{print tolower($0)}' | sed -e 's#%3a#:#g' > ${DATENDATEI} 2>&1
. ${DATENDATEI}
### GET
AKTION="$(echo "${QUERY_STRING}" | awk -F'=' '{print $1}')"
WERT="$(echo "${QUERY_STRING}" | awk -F'=' '{print $2}')"
### Achtung!
# "action" englisch und klein geschrieben, ist die Variable aus dem POST-Datenstrom;
# "AKTION" deutsch und groß geschrieben, ist aus der GET-Zeile
echo 'Content-type: text/html
'
if [ "${AKTION}" = "anlegen" ] ; then
echo '
alle IP-Adressen der Remote-Consolen anzeigen
'
### die neue Gruppe wird erstelt
echo "INSERT INTO ${REMCONSTAB} ($(cat ${DATENDATEI}|awk -F'=' '{print $1}'|tr -s '\n' ','|sed 's/,$//')) VALUES ($(cat ${DATENDATEI} | awk -F'=' '{print $2}'|sed "s/.*/'&'/"|tr -s '\n' ','|sed "s/,'',$//"))" \
| mysql -H -h ${OPENQRM_DATABASE_SERVER} -u${OPENQRM_DATABASE_USER} -p${OPENQRM_DATABASE_PASSWORD} ${OPENQRM_DATABASE_NAME}
echo "
SELECT *
FROM ${REMCONSTAB}
WHERE board_ip='${board_ip}'
;" \
| mysql -H -h ${OPENQRM_DATABASE_SERVER} -u${OPENQRM_DATABASE_USER} -p${OPENQRM_DATABASE_PASSWORD} ${OPENQRM_DATABASE_NAME} \
elif [ "${AKTION}" = "aendern" ] ; then
echo '
'
elif [ "${action}" = "geaendert" ] ; then
sed -i -e 's#action=geaendert##' ${DATENDATEI}
echo '
IP-Adressen der Remote-Consolen anzeigen
'
echo "UPDATE ${REMCONSTAB} SET $(cat ${DATENDATEI} | fgrep -v board_ip | sed -e "s#=#='#" -e "s#.*#&'#" -e "s#^'##" | tr -s '\n' ',' | sed -e 's#,$##') WHERE board_ip='${board_ip}';" \
| mysql -H -h ${OPENQRM_DATABASE_SERVER} -u${OPENQRM_DATABASE_USER} -p${OPENQRM_DATABASE_PASSWORD} ${OPENQRM_DATABASE_NAME}
echo "
"
echo "SELECT * FROM ${REMCONSTAB} WHERE board_ip='${WERT}';" | mysql -H -h ${OPENQRM_DATABASE_SERVER} -u${OPENQRM_DATABASE_USER} -p${OPENQRM_DATABASE_PASSWORD} ${OPENQRM_DATABASE_NAME} \
| tr -s '\n' ' ' \
| sed -e 's#> <#><#g' -e 's#>#> #g' -e 's#><#>\n<#g' -e 's# #\n#g' | while read HTMLZEILE
do
SPALTENANFANG="$(echo "${HTMLZEILE}" | egrep '^
$')"
if [ -n "${SPALTENANFANG}" ] ; then
SPALTENZAHL="0"
fi
SPALTENZAHL="$((${SPALTENZAHL}+1))"
TH="$(echo "${HTMLZEILE}" | egrep '^| ')"
if [ -z "${TH}" -a "${SPALTENZAHL}" = "2" ] ; then
ZELLENWERT="$(echo "${HTMLZEILE}" | sed -e 's# | ##' -e 's# | ##')"
echo "${ZELLENWERT} loeschen aendern | "
else
echo "${HTMLZEILE}"
fi
done
echo "
GEÄNDERT
"
echo "SELECT * FROM ${REMCONSTAB} WHERE board_ip='${board_ip}';" | mysql -H -h ${OPENQRM_DATABASE_SERVER} -u${OPENQRM_DATABASE_USER} -p${OPENQRM_DATABASE_PASSWORD} ${OPENQRM_DATABASE_NAME}
elif [ "${AKTION}" = "loeschen" ] ; then
echo '
alle Remote IP-Adressen anzeigen
'
echo "
"
echo "SELECT * FROM ${REMCONSTAB} WHERE board_ip='${WERT}';" | mysql -H -h ${OPENQRM_DATABASE_SERVER} -u${OPENQRM_DATABASE_USER} -p${OPENQRM_DATABASE_PASSWORD} ${OPENQRM_DATABASE_NAME}
echo "
Remote IP-Adresse ${WERT} entgültig löschen"
elif [ "${AKTION}" = "geloescht" ] ; then
echo '
alle Remote IP-Adressen anzeigen
'
echo "SELECT * FROM ${REMCONSTAB} WHERE board_ip='${WERT}';" | mysql -H -h ${OPENQRM_DATABASE_SERVER} -u${OPENQRM_DATABASE_USER} -p${OPENQRM_DATABASE_PASSWORD} ${OPENQRM_DATABASE_NAME}
echo "
"
echo "DELETE FROM ${REMCONSTAB} WHERE board_ip='${WERT}';" | mysql -H -h ${OPENQRM_DATABASE_SERVER} -u${OPENQRM_DATABASE_USER} -p${OPENQRM_DATABASE_PASSWORD} ${OPENQRM_DATABASE_NAME}
echo "
GELÖSCHT
"
echo "SELECT * FROM ${REMCONSTAB} WHERE board_ip='${WERT}';" | mysql -H -h ${OPENQRM_DATABASE_SERVER} -u${OPENQRM_DATABASE_USER} -p${OPENQRM_DATABASE_PASSWORD} ${OPENQRM_DATABASE_NAME}
else
echo '
neue Remote IP-Adresse eintragen
'
echo "
SELECT *
FROM ${REMCONSTAB}
ORDER BY ${REMCONSORDER} ASC
;" \
| mysql -H -h ${OPENQRM_DATABASE_SERVER} -u${OPENQRM_DATABASE_USER} -p${OPENQRM_DATABASE_PASSWORD} ${OPENQRM_DATABASE_NAME} \
| tr -s '\n' ' ' \
| sed -e 's#> <#><#g' -e 's#>#> #g' -e 's#><#>\n<#g' -e 's#
#\n#g' | while read HTMLZEILE
do
SPALTENANFANG="$(echo "${HTMLZEILE}" | egrep '^
$')"
if [ -n "${SPALTENANFANG}" ] ; then
SPALTENZAHL="0"
fi
SPALTENZAHL="$((${SPALTENZAHL}+1))"
TH="$(echo "${HTMLZEILE}" | egrep '^| ')"
if [ -z "${TH}" -a "${SPALTENZAHL}" = "2" ] ; then
ZELLENWERT="$(echo "${HTMLZEILE}" | sed -e 's# | ##' -e 's# | ##')"
echo "loeschen aendern ${ZELLENWERT} | "
else
echo "${HTMLZEILE}"
fi
done
fi
rm -f ${DATENDATEI} ${ZAHLEN1} ${ZAHLEN2}
echo "
"
echo '