[CLI Wiki] page changée : scripts:exemples:postgresql

noreply at asyd.net noreply at asyd.net
Fri Apr 6 13:23:10 CEST 2007


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 at example.com -- -f root at example.com
+ fi
+ /bin/rm -f $TMPFILE
  
  exit 0
+ 
  </code>



-- 
Ce message a été généré par DokuWiki
http://cli.asyd.net/home/



More information about the Shell mailing list