sabato 7 marzo 2015

Script per il Backup di un Database Postgres

Ne ho fatti a migliaia di script del genere e non ne ho mai condiviso nessuno.
Mi sono trovato però  a dover creare uno script da inserire nelle operazioni pianificate di Linux (cron) per il salvataggio di alcuni database di postgress di Odoo (OpenERP) .

Lo script che allego deve essere lanciato con 3 parametri:

  1. Nome del DATABASE .
  2. Patch completa della cartella di destinazione dove salvare il dump del DB.
  3. Numero di Backup da mantenere .
Lanciando lo script con i parametri corretti si otterrà un file tipo 1_NOMEDB.sql.bz2 dove 1_ è l'ultimo backup 2_NOMEDB.sql.bz2 il penultimo e così via in base al numero impostato come terzo parametro.
Se la cartella impostata nel parametro 2 è una cartella di un servizio di Cloud tipo DropBox ( come nel mio caso ) oltre ad eseguire il DUMP del database lo si salva anche nella "nuvola" .

Lo script è il seguente:


#!/bin/bash
#  _        _______  _______  _______  _______ _________
# ( (    /|(  ____ \(       )(  ____ \(  ____ \\__   __/|\     /|
# |  \  ( || (    \/| () () || (    \/| (    \/   ) (   ( \   / )
# |   \ | || (__    | || || || (__    | (_____    | |    \ (_) /
# | (\ \) ||  __)   | |(_)| ||  __)   (_____  )   | |     ) _ (
# | | \   || (      | |   | || (            ) |   | |    / ( ) \
# | )  \  || (____/\| )   ( || (____/\/\____) |___) (___( /   \ )
# |/    )_)(_______/|/     \|(_______/\_______)\_______/|/     \|
#
# SCRIPT PER LA CREAZIONE ED IL SALVATAGGIO DEI DATABASE DI POSTGRES
#
# s.zucchi@nemesix.it Ver.1.00 del 04-03-2015
#
#
# Primo Parametro obbligatorio, il nome del Database
if [ "$1" = "" ]
then
    echo "Attenzione parametro Database mancante"
    exit 1
else
    DATABASE=$1
    DATABASESQL=$DATABASE.sql
    DATABASEZIP=$DATABASESQL.bz2
fi

# Parametri del programma PG_DUMP
#PGDUMPPAR="--format=c --no-owner --username=openerp --host=localhost"
PGDUMPPAR="--format=c --no-owner"

# Secondo parametro obbligatorio, la cartella di destinazione
if [ "$2" = "" ]
then
    echo "Attenzione parametro cartella destinazione mancante"
    exit 1
else
    FOLDERBACKUP=$2
    if [ ! -e $FOLDERBACKUP ]
    then
    echo "Attenzione Cartella $FOLDERBACKUP non trovata quindi la creo"
    mkdir -p $FOLDERBACKUP
    fi
    cd $FOLDERBACKUP
fi

# Il terzo parametro non è necessario, se non impostato il suo valore è 10
if [ "$3" = "" ]
then
    echo "Attenzione, parametro Numero Backup mancante, imposto 10"
    NBACKUP=10
else
    NBACKUP=$3
fi

# Se esiste rimuovo l'ultimo Backup
if [ -e $NBACKUP_$DATABASEZIP ]
then
    rm $NBACKUP_$DATABASEZIP
fi

# Esegui il ciclo per spostare i vari Backup
for ((i=$NBACKUP; i > 1 ; i--))
do
    if [ -e `expr $i - 1`_$DATABASEZIP ]
    then
    mv `expr $i - 1`_$DATABASEZIP $i'_'$DATABASEZIP
    fi
    LASTBACKUP=`expr $i - 1`_$DATABASEZIP
done

# Creo il DUMP del Database di postgres nella cartella temporanea
pg_dump $PGDUMPPAR $DATABASE >/tmp/$DATABASESQL

# Se esiste cancello il file zippato precedentemente per evitare che il comando bzip2 vada in errore.
if [ -e /tmp/$DATABASEZIP ]
then
    rm /tmp/$DATABASEZIP
fi
# Lancio il comando bzip2 per comprimere il dump del database
bzip2 /tmp/$DATABASESQL

# Sposto il database nella cartella specificata tra i parametri.
if [ -e /tmp/$DATABASEZIP ]
then
    mv /tmp/$DATABASEZIP $LASTBACKUP
else
    echo "Attenzione file /tmp/$DATABASEZIP non trovato"
    exit 1
fi

exit 0

venerdì 5 aprile 2013

4G LTE Vodafone a Modena

Qualche giorno fa sul sito della Vodafone era presente un conto alla rovescia che indicava la partenza del 4G, ovvero la nuova tecnologia LTE, su parecchie città Italiane, tra queste Modena.
Oggi, Venerdì 5 Aprile 2013, mi trovo per caso dalle parti, più precisamente al centro commerciale Grande Emilia.
Stavo smanettando sul Galaxy Notes 2 di un mio collega quando ho visto in alto sulla sinistra la segnalazione del segnale 4G.
Non potevo non provare la velocità e i risultati sono stati incredibili.....
Allego gli screenshot del test della velocità fatto dal telefono con il programma speedtest.



domenica 28 ottobre 2012

iMac 2012 Il miglior desktop in assoluto. Buon Natale!


Il 26 Ottobre Apple ha presentato il nuovo MacBook Pro 13 Retina, il nuovo Mac Mini, l'attesissimo iPad Mini e infine il nuovo iMac.
Ma l'avete visto?
Possiamo dire quello che vogliamo ma questi sono veramente anni avanti rispetto i concorrenti.
Per fare un esempio HP ha presentato da poco un All In One praticamente uguale al iMac "precedente" .

Purtroppo sono sempre a rincorrere. Appena riescono a copiare un prodotto Apple lei se ne esce con una versione nuova che rende la precedente obsoleta.
Tanto di cappello ad Apple anche per questo ultimo restyling.
Trovate tutte le caratteristiche ovviamente sul loro sito web.

mercoledì 24 ottobre 2012

E' arrivato ma ne avevamo davvero bisogno? Sicuramente adesso abbiamo più scelta e poter scegliere è sempre una buona cosa. Peccato non avere quelle cose che mi permettono di averlo una volta fatta la scelta!

martedì 11 settembre 2012


Questo è il secondo giorno di corso di Objective-C.
Mi sembra di essere tornato indietro di 20 anni, anzi sono tornato indietro di 20 anni!!! Che fatica quando sei abituato a scrivere in Python!
Scrivere codice nativo ha però il suo fascino!