11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

# "/4/i386/kernel-xen*"<br />

# "/4/i386/xen-*"<br />

)<br />

Capitolo 12. Filtri, programmi e coman<strong>di</strong> esterni<br />

init () {<br />

# Consente alla pipe dei coman<strong>di</strong> <strong>di</strong> visualizzare eventuali errori<br />

#+ <strong>di</strong> rsync, es. stalled network.<br />

set -o pipefail<br />

}<br />

TMP=${TMPDIR:-/tmp}/${0##*/}.$$ # Registra la lista aggiornata<br />

#+ del download.<br />

trap "{<br />

rm -f $TMP 2>/dev/null<br />

}" EXIT # Cancella il file temporaneo<br />

#+ all’uscita.<br />

controlla_pid () {<br />

# Verifica l’esistenza del processo.<br />

if [ -s "$PID_FILE" ]; then<br />

echo "Il file PID esiste?. Verifica ..."<br />

PID=$(/bin/egrep -o "^[[:<strong>di</strong>git:]]+" $PID_FILE)<br />

if /bin/ps --pid $PID &>/dev/null; then<br />

echo "Trovato processo $PID. ${0##*/} in esecuzione!"<br />

/usr/bin/logger -t ${0##*/} \<br />

"Trovato processo $PID. ${0##*/} in esecuzione!"<br />

exit $E_RETURN<br />

fi<br />

echo "Processo $PID non trovato. Inizio un nuovo processo . . ."<br />

fi<br />

}<br />

# Imposta l’intervallo dell’aggiornamento completo iniziando da root o da $URL,<br />

#+ secondo quanto specificato nei modelli precedenti.<br />

imposta_intervallo () {<br />

include=<br />

esclude=<br />

for p in "${INCLUDE[@]}"; do<br />

include="$include --include \"$p\""<br />

done<br />

}<br />

for p in "${ESCLUDE[@]}"; do<br />

esclude="$esclude --exclude \"$p\""<br />

done<br />

# Recupera e perfeziona l’elenco <strong>di</strong> aggiornamento rsync.<br />

crea_lista () {<br />

echo $$ > $PID_FILE || {<br />

307

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!