Advertisement
Guest User

Untitled

a guest
May 10th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. #!/bin/bash
  2. set -e
  3.  
  4. DB_NAME=$1
  5. MAX_BACKUPS=${MAX_BACKUPS:-30}
  6. DB_USER=${DB_USER:-"postgres"}
  7. DB_HOST=${DB_HOST:-""}
  8. PGPASSWORD=$DB_PASSWORD
  9. BACKUP_DIR=${BACKUP_DIR:-"backups"}
  10. BACKUP_FILE=$BACKUP_DIR/$DB_NAME'_'$(date +%F_%T).pgdump
  11.  
  12. if [[ ! -d $BACKUP_DIR ]]; then
  13. echo "Creating backup dir"
  14. mkdir -p $BACKUP_DIR
  15. fi
  16.  
  17. echo "Creating backup of $DB_NAME"
  18. pg_dump\
  19. --format=custom\
  20. --host=$DB_HOST\
  21. --username=$DB_USER\
  22. --file=$BACKUP_FILE\
  23. --dbname=$DB_NAME
  24.  
  25. echo "Removing old backups"
  26. offset=$(($MAX_BACKUPS + 1)) # tail needs N+1 offset
  27. old_backups=$(find "$BACKUP_DIR" -type f -name "$DB_NAME"_* | sort -r | tail -n +$offset)
  28. if [[ $old_backups != "" ]]; then
  29. echo $old_backups | xargs rm
  30. fi
  31.  
  32. echo "Done"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement