L'anticamera del cestino

Raccolta differenziata di esperienze di dubbia utilità

Archive for the ‘bash’ Category

Backup con rsync su un disco esterno USB

leave a comment »

Riporto di seguito uno script che utilizzo per fare il backup su un disco esterno USB. Lo script oltre ad effettuare il backup incrementale con rsync verifica che il disco USB sia montato e scrive in /var/log/messages le attività effettuate.
#!/bin/bash
SORGENTE="/home/max" # Cosa copiare
TARGET="/media/backup" # Dove copiare
EXCLUDE="/home/max/.rsync/exclude" # Lista file da escludere
TAG="backup" # tag dei log scritti in /var/log/messages


# VERIFICA CHE IL DISCO E' MONTATO
MOUNTED=$(df | grep $TARGET |awk '{print $6}')
if [ "$MOUNTED" == "$TARGET" ]
then
echo "Il disco è montato: eseguo il backup"
logger Inizio backup di $SORGENTE per `hostname` -t $TAG
rsync -av --exclude-from=$EXCLUDE $SORGENTE $TARGET/
RSYNCERR=$?
logger Fine backup per `hostname` rsync ha restituito $RSYNCERR -t $TAG
exit 0
else
echo "Il disco non è montato"
logger Impossibile eseguire il backup di `hostname` disco non montato -t $TAG
exit 1
fi

Dopo che ho fatto questo script ho deciso di creare il pacchetto deb per poterlo installare agevolmente sui miei PC. A quel punto ho pensato di renderlo un po’ più completo e di aggiungere nel pacchetto diversi tools per effettuare il backup su supporti e protocolli diversi (ssh, samba, ecc). Ho caricato il progetto su GitHub

Written by Max-B

25 ottobre 2011 at 10:53

Pubblicato su bash, GNU/Linux

Usare zenity per creare un’icona di notifica

leave a comment »

Zenity è uno strumento che permette di visualizzare le finestre di dialogo GTK + da linea di comando e tramite script di shell. Se vogliano visualizzare un’icona di stato di un programma non dobbiamo fare altro che inizializzare le icone dei diversi stati del programma.

SYNCINGICON="/usr/share/icons/ourbox-notify0.svg"
MONITORINGICON="/usr/share/icons/ourbox-notify1.svg"
exec 6> >(zenity --notification --listen --window-icon=$SYNCINGICON --text "OurBox is syncing")
exec 5> >(zenity --notification --listen --window-icon=$MONITORINGICON --text "OurBox is monitoring")

Successivamente, framite funzioni specifiche possiamo modificare le singole proprietà di zenity e rendere visibili o invisibili le icone di stato. Nell’esempio seguente due funzioni permettono di attivare 2 diverse icone a seconda della funzione eseguita

function syncing {
echo "visible:true" >&6 2>/dev/null
echo "visible:false" >&5 2>/dev/null
}
function monitoring {
echo "visible:true" >&5 2>/dev/null
echo "visible:false" >&6 2>/dev/null
}

Written by Max-B

13 giugno 2011 at 15:55

Pubblicato su bash

Sostituire accenti con il corrispondente HTML

leave a comment »

Nel mio lavoro mi vengono spesso passati dei file di testo in word da caricare su pagine web. Purtroppo caratteri particolari e accenti dovrebbero essere sostituiti con il corrispondente HTML. Per evitare questa seccatura mi sono fatto un piccolo script in bash che, data una directory di partenza controlla tutti i file .php ed effettua la sostituizione dei caratteri accentati.

Ecco il codice:

#!/bin/bash

inputdir=$1

echo Sto cercando i file

for file in $(find $inputdir -iname "*.php") ; do
 echo Apro il file il file $file
 sed -i 's/è/\è/g' $file
 sed -i 's/à/\à/g' $file
 sed -i 's/ò/\ò/g' $file
 sed -i 's/ù/\ù/g' $file
 sed -i 's/ì/\ì/g' $file
 sed -i 's/é/\é/g' $file
 sed -i "s/’/'/g" $file
done

Written by Max-B

1 settembre 2009 at 09:29

Pubblicato su bash

Tagged with