1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/bin/bash
- trap "shutdown" SIGHUP SIGINT SIGQUIT SIGABRT SIGALRM SIGTERM
- function shutdown {
- log "Interrupted."
- exit 0
- }
- sname=`basename "${0}"`
- basedir=`dirname "${0}"`
- cd "${basedir}/.."
- mycfgfp="../conf/my.conf"
- mastcfgfp="../conf/mustard.ini"
- mailcfgfp="../conf/mail.conf"
- logfp="maintain.log"
- crlogfp="crawler.log"
- dbname=`cat "${mastcfgfp}" | grep -P '^db_name=' | sed -e 's/^db_name=//' -e 's/^"//' -e 's/"$//'`
- mailmta=`cat "${mailcfgfp}" | grep -P '^mta=' | sed -e 's/^mta=//' -e 's/^"//' -e 's/"$//'`
- mailfrom=`cat "${mailcfgfp}" | grep -P '^from=' | sed -e 's/^from=//' -e 's/^"//' -e 's/"$//'`
- mailto=`cat "${mailcfgfp}" | grep -P '^to=' | sed -e 's/^to=//' -e 's/^"//' -e 's/"$//'`
- function log {
- echo `date "+%Y-%m-%d %H:%M:%S.%N"` "${1}" >> "${logfp}"
- }
- # $1: comando; $2 file di log per stdout e stderr del comando
- function logcmd {
- log "Eseguo «${1}»..."
- $1 &>> $2
- ec=$?
- if [ "${ec}" == "0" ]; then
- log "Fatto, tutto ok :-)"
- else
- ok=0
- log "Errore: ${ec}."
- fi
- }
- [ -f "${logfp}" ] && rm "${logfp}"
- ok=1
- log "[[[ Inizio esecuzione ${sname} ]]]"
- #tar cJf run-`date +%Y-%m-%d--%H.%M.%S`.tar.xz run/
- buff=`ls -1 run/`
- [ "${buff}" != "" ] && logcmd "find run/ -type f -exec rm {} ;" "${logfp}"
- logcmd "php fedipact.php" "${logfp}"
- logcmd "php mustool.php updstats" "${logfp}"
- if [ `date "+%d"` != "01" ]; then # usa il gracetime di default
- log "Eseguo crawler.php con il gracetime di default"
- logcmd "php crawler.php" "${crlogfp}"
- else # il primo del mese usa un gracetime di 2 mesi
- log "Eseguo crawler.php con un gracetime di 2 mesi"
- logcmd "php crawler.php -g 2M" "${crlogfp}"
- fi
- logcmd "php mustool.php shuffle clean optimize" "${logfp}"
- ofp="maintain/backups/${dbname}_backup-`date +%Y-%m-%d--%H.%M.%S`.sql"
- logcmd "mysqldump --defaults-extra-file=${mycfgfp} --single-transaction -r ${ofp} ${dbname}" "${logfp}"
- if [ "${ec}" != "0" ]; then
- [ -f "${ofp}" ] && rm "${ofp}"
- else
- logcmd "xz -9 ${ofp}" "${logfp}"
- fi
- [ $ok -eq 1 ] && subj="maintain.bash: tutto ok :-)" || subj="maintain.bash: ci sono errori :-("
- body="[[[ ${logfp} ]]]\n\n"
- body+=`cat "${logfp}"`
- body+="\n\n[[[ Ultime 20 righe di ${crlogfp} ]]]\n\n"
- body+=`tail -n 20 "${crlogfp}"`
- echo -e "${body}" | s-nail -s "${subj}" -S v15-compat -S from="${mailfrom}" -S smtp-use-starttls -S mta="${mailmta}" "${mailto}"
- [ $ok -eq 1 ] && exit 0 || exit 1
|