Advertisement
Guest User

Untitled

a guest
Mar 7th, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. ```
  2. #!/bin/bash
  3.  
  4. HOSTNAME=""
  5. USERNAME=""
  6. PASSWORD=""
  7. DATABASE=""
  8.  
  9. # mysql or postgresql
  10. SERVER_TYPE="postgresql"
  11.  
  12. BACKUP_DIR="/tmp/backup"
  13. DAYS_TO_KEEP=7
  14.  
  15. export PGPASSWORD="$PASSWORD"
  16.  
  17. function init() {
  18. if [[ ! -d $BACKUP_DIR ]]; then
  19. echo
  20. echo "The directory $BACKUP_DIR not found!"
  21. echo
  22. exit 1
  23. else
  24. for (( i = 0; i < $DAYS_TO_KEEP; i++ )); do
  25. if [[ ! -d "$BACKUP_DIR/$i" ]]; then
  26. mkdir "$BACKUP_DIR/$i"
  27. fi
  28. done
  29. fi
  30. }
  31.  
  32. function perform_backup() {
  33. echo "perform backup!"
  34. if [[ ! -d "$BACKUP_DIR/0" ]]; then
  35. mkdir "$BACKUP_DIR/0"
  36. fi
  37.  
  38. if [ "$SERVER_TYPE" == "mysql" ]; then
  39. elif [ "$SERVER_TYPE" == "postgresql" ]; then
  40. pg_dump --host=$HOSTNAME --port=5432 --username=$USERNAME --no-password $DATABASE | xz -c > $BACKUP_DIR/0/$DATABASE-prod-$(date +\%Y\%m\%d-\%H\%M).sql.xz
  41. fi
  42. }
  43.  
  44. function remove_expired_backup() {
  45. echo "remove expired backups!"
  46. for (( i = $DAYS_TO_KEEP-1; i>=0; i-- )); do
  47. mv "$BACKUP_DIR/$i" "$BACKUP_DIR/$((i+1))"
  48. done
  49.  
  50. rm -rf "$BACKUP_DIR/$DAYS_TO_KEEP"
  51. }
  52.  
  53.  
  54. function upload_to_qiniu() {
  55. if [ -d "$BACKUP_DIR/1" ]; then
  56. echo "upload!"
  57. fi
  58. }
  59.  
  60. init
  61. remove_expired_backup
  62. perform_backup
  63. upload_to_qiniu
  64. ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement