[CLI Wiki] page changée : scripts:exemples:postgresql
Une page dans votre Wiki a été ajoutée ou modifiée. Voici les détails : Date : 2007/04/06 13:23 Navigateur : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.1) Gecko/20061205 Iceweasel/2.0.0.1 (Debian-2.0.0.1+dfsg-2) Adresse IP : 140.77.250.199 Nom d'hôte : persephone.cri-admin.ens-lyon.fr Ancienne révision : http://cli.asyd.net/home/scripts/exemples/postgresql?rev=1169906659 Nouvelle révision : http://cli.asyd.net/home/scripts/exemples/postgresql Résumé : nouvelle version du script, plus complète Utilisateur : lois @@ -55,66 +55,74 @@ esac exit 0 </code> + ===== Administration ===== À faire tourner par cron ou équivalent. Exemple avec ''/etc/crontab'' : <code bash> - 46 6 * * * root /root/adm/postgresql.sh vacuum > /dev/null - 00 7 * * * root /root/adm/postgresql.sh backup > /dev/null + 46 6 * * * root /root/adm/postgresql.sh vacuum + 00 7 * * * root /root/adm/postgresql.sh backup </code> <code bash> - #!/bin/sh -e + #!/bin/bash # manipulations sur le serveur postgresql, via cron - # Loïs - 20061219 - # $Id + # + # $Id: postgresql-adm.sh 51 2007-04-06 08:57:45Z maintenance $ PGDIR="/usr/local/pgsql" PGBIN="$PGDIR/bin" PGDATA="/usr/local/pgsql/data" PGLOG="/var/log/postgresql.log" DESC="Postgresql database server" USER="postgres" DATE=$(date +%Y%m%d) + TMPFILE=$(mktemp /tmp/postgresql-adm.XXXXXXXX) || exit 1 + HOST=$(hostname) BACKUPDIR="/opt/postgres-data" test -x $PGDIR || exit 0 - case "$1" in - status) - echo -n "$DESC current status: " - su - $USER -- $PGBIN/pg_ctl -D $PGDATA status - echo "" + status) + echo -n "$DESC current status: " >> $TMPFILE 2>&1 + su - $USER -c "$PGBIN/pg_ctl -D $PGDATA status" >> $TMPFILE 2>&1 + echo "" >> $TMPFILE 2>&1 ;; - vacuum) - echo -n "$DESC vacuuming all databases: " - su - $USER -- $PGBIN/vacuumdb --full --analyze --all - su - $USER -- $PGBIN/reindexdb --all --quiet - echo -n "" + vacuum) + echo -n "$DESC vacuuming all databases: " >> $TMPFILE 2>&1 + su - $USER -c "$PGBIN/vacuumdb --full --analyze --all" >> $TMPFILE 2>&1 + su - $USER -c "$PGBIN/reindexdb --all --quiet" >> $TMPFILE 2>&1 + # su - $USER -c "$PGBIN/reindexdb --all" >> $TMPFILE 2>&1 + echo -n "" >> $TMPFILE 2>&1 ;; - analyze) - echo -n "$DESC analyzing all databases: " - su - $USER -- $PGBIN/vacuumdb --analyze --all - echo -n "" + analyze) + echo -n "$DESC analyzing all databases: " >> $TMPFILE 2>&1 + su - $USER -c "$PGBIN/vacuumdb --analyze --all" >> $TMPFILE 2>&1 + echo -n "" >> $TMPFILE 2>&1 ;; - backup) - echo "$DESC backuping: " - mkdir -p $BACKUPDIR - su - $USER -- $PGBIN/pg_dumpall > $BACKUPDIR/dumpall-$DATE.sql - bzip2 $BACKUPDIR/dumpall-$DATE.sql - # TODO: trouver un rotate pour ces sauvegardes (voir logrotate peut-etre ?) + backup) + echo "$DESC backuping: " >> $TMPFILE 2>&1 + mkdir -p $BACKUPDIR >> $TMPFILE 2>&1 + su - $USER -c "$PGBIN/pg_dumpall > $BACKUPDIR/dumpall.sql" >> $TMPFILE 2>&1 + su - $USER -c "savelog -c 15 -p -j -d $BACKUPDIR/dumpall.sql" >> $TMPFILE 2>&1 echo "" ;; - *) + *) echo "Usage: $0 {status|vacuum|analyze|backup}" echo "" exit 1 ;; esac + + if [ -s $TMPFILE ] + then /bin/cat $TMPFILE | /usr/bin/mailx -s "$HOST : postgresql" admin@example.com -- -f root@example.com + fi + /bin/rm -f $TMPFILE exit 0 + </code> -- Ce message a été généré par DokuWiki http://cli.asyd.net/home/
participants (1)
-
noreply@asyd.net