Guest User

Untitled

a guest
Dec 20th, 2017
577
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. APP_NAME=<APP NAME>
  4. HOST=<FTP HOST>
  5. USER=<FTP USER>
  6. PASS=<FTP PASSWORD>
  7. # mongo, mysql, postgres & etc.
  8. DB=mongo
  9. CUR_DATE=$(date +%F-%H-%M)
  10. BACKUP_COUNT=30
  11. CRON_COMMAND="/home/dokku/${APP_NAME}/backup_database.sh > /home/dokku/${APP_NAME}/backup_database.log 2>&1"
  12. CRON_SCHEDULE="0 3 * * *"
  13.  
  14. cd /home/dokku/${APP_NAME}
  15.  
  16. # Install cron job
  17. ( crontab -u dokku -l | grep -v -F "$CRON_COMMAND" ; echo "$CRON_COMMAND $CRON_SCHEDULE" ) | crontab -u dokku -
  18.  
  19. # Dump database and gzip it
  20. dokku ${DB}:export ${APP_NAME} | gzip --stdout > "./${APP_NAME}_${CUR_DATE}.tar.gz"
  21.  
  22. # Upload file to ftp://<host>/<app name>/
  23. ftp -inv $HOST << EOF
  24. user $USER $PASS
  25. mkdir $APP_NAME
  26. cd $APP_NAME
  27. put ${APP_NAME}_${CUR_DATE}.tar.gz
  28. bye
  29. EOF
  30.  
  31. # Remove local file
  32. rm "./${NAME}_${CUR_DATE}.tar.gz"
  33.  
  34. # Delete old remote backups
  35. (
  36. while read line; do echo ${line##* }; done << EOF
  37. $(curl -s ftp://$HOST/$APP_NAME/ --user $USER:$PASS)
  38. EOF
  39. ) | sort -r | tail -n +$((BACKUP_COUNT+1)) | (
  40. echo user $USER $PASS
  41. echo cd $APP_NAME
  42. while read line; do echo del ${line}; done;
  43. echo bye
  44. ) | (
  45. ftp -inv $HOST
  46. )
Add Comment
Please, Sign In to add comment