• [^] # Re: Bof Un autre pour postgresql

    Posté par . En réponse au journal Restauration et sauvegarde MySQL. Évalué à 2.

    N'étant pas du tout expert postgresql, j'ai quand même fait un script de backup également :

    #!/bin/sh
    #
    # Script pour faire le backup des bases
    # de données PostgreSQL
    # Exécuté par /etc/crontab
    #
    #
    backup_dir=/mnt/backup-pgsql
    backup_dir_pgsql=${backup_dir}/pgsql
    backup_tmp=${backup_dir}/tmp
    backup_tmp_pgsql=${backup_tmp}/pgsql


    # répertoire de backup monté ?
    monte=`mount | grep backup-pgsql | grep -v grep`

    if [ "${monte}" != "" ]; then

    mkdir -p ${backup_dir} && chmod 0700 ${backup_dir}
    mkdir -p ${backup_dir_pgsql} && chmod 0700 ${backup_dir_pgsql}
    mkdir -p ${backup_tmp} && chmod 0700 ${backup_tmp}
    mkdir -p ${backup_tmp_pgsql} && chmod 0700 ${backup_tmp_pgsql}

    date=`date -I`
    host=`hostname -s`

    # Détermine la liste des bases et les copie

    dbnames=`psql -U postgres -q -t -A -d template1 -c "SELECT datname FROM pg_datab
    ase WHERE datname != 'template0'"`
    for db in ${dbnames}; do
    echo -n " $db"
    file=${backup_tmp_pgsql}/pgsql-${db}-$date-$host.Fc
    pg_dump -U postgres -F c -d $db -f ${file}
    done


    # Création de l'archive Tar/gzip data et
    # déplacement vers le répertoire des backups
    tar czf ${backup_tmp}/pgsql-$date-$host.tar.gz -C ${backup_tmp}/ pgsql/
    mv ${backup_tmp}/pgsql-$date-$host.tar.gz ${backup_dir_pgsql}/pgsql-$host.tar.gz

    # Efface les fichiers temporaires

    rm -f ${backup_tmp}/pgsql/*.sql

    fi