Advertisement
Dyrcona

cpio backup

Jun 28th, 2022
1,400
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/bash
  2.  
  3. PGBIN=/usr/bin/
  4. PGDATA=/var/lib/postgresql/10/main;
  5.  
  6. #ARCHIVE_HOST=IP
  7. ARCHIVE_USER=postgres
  8. ARCHIVE_DIR="/mnt/evergreen/database/snapshot/"
  9. #ARCHIVE_DST="/mnt/cwmars/snapshot/"
  10.  
  11.  
  12. ARCHIVE_LABEL=`date +mydb-prod-backup-%FT%T`
  13. ARCHIVE_FILE=$ARCHIVE_LABEL.cpio.gz
  14.  
  15.  
  16. # Make sure we're not overwriting an existing backup
  17. if [ -e $ARCHIVE_DIR/$ARCHIVE_FILE ]; then
  18.         echo "Cannot create backup: $ARCHIVE_DIR/$ARCHIVE_FILE exists";
  19.         exit;
  20. fi
  21.  
  22.  
  23. # Tell PG we're starting the backup
  24. START_RESULT=`$PGBIN/psql -tc "SELECT pg_start_backup('$ARCHIVE_LABEL') IS NOT NULL;"|grep t`
  25. if [ "_" == "_$START_RESULT" ]; then
  26.         echo "Could not start backup labeled $ARCHIVE_LABEL";
  27.         exit;
  28. fi
  29.  
  30.  
  31. # Grab the data we need (just copy it locally) ...
  32. (cd $PGDATA && find . -depth -print | grep -v pg_xlog | cpio -o | gzip > $ARCHIVE_DIR/$ARCHIVE_FILE)
  33.  
  34.  
  35. # ... tell PG we're done ...
  36. STOP_RESULT=`$PGBIN/psql -tc "SELECT pg_stop_backup() IS NOT NULL;"|grep t`
  37. if [ "_" == "_$STOP_RESULT" ]; then
  38.         echo "Could not stop backup labeled $ARCHIVE_LABEL";
  39.         exit;
  40. fi
  41.  
  42.  
  43. if [ "_$ARCHIVE_HOST" != "_" ]; then
  44.         # ... then push it over to the backup host
  45.         scp -q $ARCHIVE_DIR/$ARCHIVE_FILE $ARCHIVE_USER@$ARCHIVE_HOST:$ARCHIVE_DST
  46.         SCP_RES=$?
  47.         if [ "$SCP_RES" != "0" ]; then
  48.                 echo "Unable to archive $ARCHIVE_DIR/$ARCHIVE_FILE to $ARCHIVE_USER@$ARCHIVE_HOST:$ARCHIVE_DST!!"
  49.                 exit;
  50.         fi
  51. fi
  52.  
  53. echo "Backup of database on $HOSTNAME complete.  Backup labeled $ARCHIVE_LABEL stored at $ARCHIVE_HOST:$ARCHIVE_DST."
  54.  
  55.  
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement