From 05335d7f08eca441027ba34c559323b3cb1c5565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lecour?= Date: Tue, 4 Sep 2018 23:08:42 +0200 Subject: [PATCH] Add curly braces and quotes around variables --- evomaintenance.sh | 65 +++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/evomaintenance.sh b/evomaintenance.sh index 43531ae..07e38e5 100644 --- a/evomaintenance.sh +++ b/evomaintenance.sh @@ -7,35 +7,36 @@ # version 0.2 # Copyright 2007-2008 Gregory Colpart , Evolix -SYSTEME=$(uname -s) test -f /etc/evomaintenance.cf && . /etc/evomaintenance.cf -[ $HOSTNAME ] || HOSTNAME=$(hostname) -[ $EVOMAINTMAIL ] || EVOMAINTMAIL=evomaintenance-$(echo $HOSTNAME | cut -d- -f1)@$REALM +[ -n "${HOSTNAME}" ] || HOSTNAME=$(hostname) +[ -n "${EVOMAINTMAIL}" ] || EVOMAINTMAIL=evomaintenance-$(echo "${HOSTNAME}" | cut -d- -f1)@${REALM} -PATH=$PATH:/usr/sbin -SENDMAIL=$(which sendmail) -LOGFILE=/var/log/evomaintenance.log +PATH=${PATH}:/usr/sbin -touch ${LOGFILE} -chown root:adm ${LOGFILE} +# log file +LOGFILE=${LOGFILE:-/var/log/evomaintenance.log} +touch "${LOGFILE}" +chown root:adm "${LOGFILE}" # get ipaddress BEGIN_YEAR=$(date "+%Y") -if [ $SYSTEME = "Linux" ]; then - IP=$(LC_ALL=C who | grep $(ps -o tty= | tail -1) | tr -s ' ' | cut -d" " -f6 | sed -e "s/^(// ; s/)$//") - BEGIN_DATE=$(LC_ALL=C who | grep $(ps -o tty= | tail -1) | tr -s ' ' | cut -d" " -f3,4,5) - _USER=$SUDO_USER -elif [ $SYSTEME = "OpenBSD" ]; then - IP=$(LC_ALL=C who | grep $(env | grep SSH_TTY | cut -d"/" -f3) | tr -s ' ' | cut -d" " -f6 | sed -e "s/^(// ; s/)$//") - BEGIN_DATE=$(LC_ALL=C who | grep $(env | grep SSH_TTY | cut -d"/" -f3) | tr -s ' ' | cut -d" " -f3,4,5) - _USER=$USER +SYSTEME=$(uname -s) + +if [ "${SYSTEME}" = "Linux" ]; then + IP=$(LC_ALL=C who | grep $(ps -o tty= | tail -1) | tr -s ' ' | cut -d" " -f6 | sed -e "s/^(// ; s/)$//") + BEGIN_DATE=$(LC_ALL=C who | grep $(ps -o tty= | tail -1) | tr -s ' ' | cut -d" " -f3,4,5) + _USER=${SUDO_USER} +elif [ "${SYSTEME}" = "OpenBSD" ]; then + IP=$(LC_ALL=C who | grep $(env | grep SSH_TTY | cut -d"/" -f3) | tr -s ' ' | cut -d" " -f6 | sed -e "s/^(// ; s/)$//") + BEGIN_DATE=$(LC_ALL=C who | grep $(env | grep SSH_TTY | cut -d"/" -f3) | tr -s ' ' | cut -d" " -f3,4,5) + _USER=${USER} else - echo "OS not detected!" - exit 1 + echo "OS not detected!" + exit 1 fi # end_date @@ -45,25 +46,25 @@ NOW=$(date -u +"%Y-%m-%dT%H:%M:%SZ") echo "Please, enter details about your maintenance" read TEXTE -if [ "$TEXTE" = "" ]; then +if [ "${TEXTE}" = "" ]; then echo "no value..." exit 1 fi # recapitulatif -echo "hostname = $HOSTNAME" -echo "user = $_USER" -echo "IP = $IP" -echo "begin date = $BEGIN_YEAR $BEGIN_DATE" -echo "details = $TEXTE" +echo "hostname = ${HOSTNAME}" +echo "user = ${_USER}" +echo "IP = ${IP}" +echo "begin date = ${BEGIN_YEAR} ${BEGIN_DATE}" +echo "details = ${TEXTE}" echo "To cancel, [Ctrl+C] else press [Enter]" read enter # write log -LOG_TEXTE=`echo "${TEXTE}" | sed 's/"/\\\"/g'` +LOG_TEXTE=$(echo "${TEXTE}" | sed 's/"/\\\"/g') -echo "${NOW} hostname=\"${HOSTNAME}\" user=\"${SUDO_USER}\" ip=\"${IP}\" begin_date=\"${BEGIN_YEAR} ${BEGIN_DATE}\" message=\"${LOG_TEXTE}\"" >> ${LOGFILE} +echo "${NOW} hostname=\"${HOSTNAME}\" user=\"${SUDO_USER}\" ip=\"${IP}\" begin_date=\"${BEGIN_YEAR} ${BEGIN_DATE}\" message=\"${LOG_TEXTE}\"" >> "${LOGFILE}" # git commit if (test -x /usr/bin/git); then @@ -73,14 +74,16 @@ if (test -x /usr/bin/git); then fi # insert into PG -SQL_TEXTE=`echo "$TEXTE" | sed "s/'/\\\\\\'/g ; s@/@\\\\\/@g ; s@\\&@et@g"` +SQL_TEXTE=`echo "${TEXTE}" | sed "s/'/\\\\\\'/g ; s@/@\\\\\/@g ; s@\\&@et@g"` echo " INSERT INTO evomaint(hostname,userid,ipaddress,begin_date,end_date,details) -VALUES ('$HOSTNAME','$_USER','$IP','$BEGIN_YEAR $BEGIN_DATE',now(),'$SQL_TEXTE') " | \ -psql $PGDB $PGTABLE -h $PGHOST +VALUES ('${HOSTNAME}','${_USER}','${IP}','${BEGIN_YEAR} ${BEGIN_DATE}',now(),'${SQL_TEXTE}') " | \ + psql ${PGDB} ${PGTABLE} -h ${PGHOST} # send mail +SENDMAIL=$(command -v sendmail) + cat /usr/share/scripts/evomaintenance.tpl | \ - sed -e "s/__TO__/$EVOMAINTMAIL/ ; s/__HOSTNAME__/$HOSTNAME/ ; s/__USER__/$_USER/ ; s/__BEGIN_DATE__/$BEGIN_YEAR $BEGIN_DATE/ ; s/__TEXTE__/$TEXTE/ ; s/__IP__/$IP/ ; s/__FULLFROM__/$FULLFROM/ ; s/__FROM__/$FROM/ ; s/__URGENCYFROM__/$URGENCYFROM/ ; s/__URGENCYTEL__/$URGENCYTEL/"| \ - $SENDMAIL -oi -t -f $FROM + sed -e "s/__TO__/${EVOMAINTMAIL}/ ; s/__HOSTNAME__/${HOSTNAME}/ ; s/__USER__/${_USER}/ ; s/__BEGIN_DATE__/${BEGIN_YEAR} ${BEGIN_DATE}/ ; s/__TEXTE__/${TEXTE}/ ; s/__IP__/${IP}/ ; s/__FULLFROM__/${FULLFROM}/ ; s/__FROM__/${FROM}/ ; s/__URGENCYFROM__/${URGENCYFROM}/ ; s/__URGENCYTEL__/${URGENCYTEL}/" | \ + ${SENDMAIL} -oi -t -f ${FROM}