diff --git a/evomaintenance.sh b/evomaintenance.sh index cc989df..43531ae 100644 --- a/evomaintenance.sh +++ b/evomaintenance.sh @@ -16,6 +16,11 @@ test -f /etc/evomaintenance.cf && . /etc/evomaintenance.cf PATH=$PATH:/usr/sbin SENDMAIL=$(which sendmail) +LOGFILE=/var/log/evomaintenance.log + +touch ${LOGFILE} +chown root:adm ${LOGFILE} + # get ipaddress BEGIN_YEAR=$(date "+%Y") @@ -34,7 +39,7 @@ else fi # end_date -#now() +NOW=$(date -u +"%Y-%m-%dT%H:%M:%SZ") # details echo "Please, enter details about your maintenance" @@ -45,9 +50,6 @@ if [ "$TEXTE" = "" ]; then exit 1 fi -# SQL -TEXTE=`echo "$TEXTE" | sed "s/'/\\\\\\'/g ; s@/@\\\\\/@g ; s@\\&@et@g"` - # recapitulatif echo "hostname = $HOSTNAME" echo "user = $_USER" @@ -58,19 +60,27 @@ echo "details = $TEXTE" echo "To cancel, [Ctrl+C] else press [Enter]" read enter -# git stuff +# write log +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} + +# git commit if (test -x /usr/bin/git); then cd /etc/ git add . - GIT_COMMIT=$(git commit -a -m "$TEXTE" --author="$_USER <$_USER@evolix.net>") + GIT_COMMIT=$(git commit -a -m "$LOG_TEXTE" --author="$_USER <$_USER@evolix.net>") fi +# insert into PG +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(),'$TEXTE') " | \ +VALUES ('$HOSTNAME','$_USER','$IP','$BEGIN_YEAR $BEGIN_DATE',now(),'$SQL_TEXTE') " | \ psql $PGDB $PGTABLE -h $PGHOST +# send mail 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 -