Backup postgres
Suite à me petite mésaventure, j'ai fouillé le net pour avoir un script de backup cool pour mon postgres.
Je suis tombé ici
Le script est cool, mais ne me permettait pas d'avoir en plus le moyen de remonter dans le temps. Donc j'ai sorti mon plus beau vim, et y ai collé une notion de date.
Ainsi, je peux remonter d'un mois dans les backups postgres. Ce qui est un gain non-négligeable par rapport au script d'origine.
Voici donc le petit bébé:
Certes, j'aurais pu faire un pg_dump | gzip date-db.gz... mais un tar.bz2, c'est cool :D
Je suis tombé ici
Le script est cool, mais ne me permettait pas d'avoir en plus le moyen de remonter dans le temps. Donc j'ai sorti mon plus beau vim, et y ai collé une notion de date.
Ainsi, je peux remonter d'un mois dans les backups postgres. Ce qui est un gain non-négligeable par rapport au script d'origine.
Voici donc le petit bébé:
#!/bin/bash BACKUP_DIR="/where/you/want" function pg_backup_database { DB=$1 /usr/bin/pg_dump -f ${BACKUP_DIR}/${DB} -Fc ${DB} tar jcfp ${BACKUP_DIR}/$(date +%d)-${DB}.tar.bz2 ${BACKUP_DIR}/${DB} rm ${BACKUP_DIR}/${DB} } if [ -n "$1" ]; then pg_backup_database $1 else DB_LIST=`/usr/bin/psql -l -t | awk '{print $1}' | egrep -v '^template'` for DB in ${DB_LIST} do pg_backup_database ${DB} done fi
Certes, j'aurais pu faire un pg_dump | gzip date-db.gz... mais un tar.bz2, c'est cool :D