Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2016
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Little hint. Use It script from remote server (Rails server with application != Backup server)
  4. # Add to cron
  5. # 0 0 * * * <path to script>/dump.sh
  6.  
  7. SSH_USER=''
  8. SSH_HOST=''
  9. SSH_PORT=''
  10. DB_NAME=''
  11. DB_USER=''
  12. DB_PASS=''
  13.  
  14. MAX_SIZE=2147483648 # max size of dump directory in bytes
  15. SEND_NOTIFICATION='/usr/local/rvm/bin/rvm default do ruby <path to send jabber>/send_jabber.rb.tpl'
  16. DIRS_FOR_DUMP='<absolute path to project>/public/uploads <absolute path to project>/files'
  17. DUMP_STORAGE='<absolute_path to home>/dump'
  18. DROPBOX_UPLOADER='<absolute_path_to_dropbox_uploader.sh>'
  19. DROPBOX_UPLOAD="$DROPBOX_UPLOADER -f <path_to_config_file>"
  20.  
  21. #----------------------------------------------------------
  22.  
  23. ADDITIONAL_INFO=''
  24. mkdir -p $DUMP_STORAGE
  25. cd $DUMP_STORAGE
  26.  
  27. DUMP_FILE=dump_`date +%Y_%m_%d__%H_%M_%S`.tar.gz
  28.  
  29. SIZE=`du -sb ./ | awk '{print $1; exit}'`
  30.  
  31. if [ "$MAX_SIZE" -lt "$SIZE" ]
  32. then
  33. RESERVE_DIR="dump_reserve_`date +%s`"
  34. mkdir -p ../$RESERVE_DIR
  35.  
  36. last_files=`ls -Art | tail -n 2`
  37. all_files=`ls -Art`
  38. files_for_deleting="${all_files/$last_files/}"
  39.  
  40. if [ -x "$DROPBOX_UPLOADER" ]
  41. then
  42. for delete_file in $files_for_deleting
  43. do
  44. $DROPBOX_UPLOAD delete $delete_file
  45. done
  46. fi
  47.  
  48. for file in $last_files;
  49. do
  50. mv $file ../$RESERVE_DIR
  51. done
  52.  
  53. rm -rf *
  54.  
  55. for file in $last_files;
  56. do
  57. mv ../$RESERVE_DIR/$file ./
  58. done
  59.  
  60. rm -rf ../$RESERVE_DIR
  61. fi
  62.  
  63. rm -rf dump.sql
  64. #ssh $SSH_USER@$SSH_HOST -p $SSH_PORT "mysqldump $DB_NAME -u $DB_USER --password=$DB_PASS"> dump.sql
  65.  
  66. mysqldump $DB_NAME -u $DB_USER --password=$DB_PASS > dump.sql
  67.  
  68. if [ ! -s dump.sql ]; then
  69. $SEND_NOTIFICATION "Fail Pord dump" "Can't create dump.sql or dump db"
  70. exit
  71. fi
  72.  
  73. rm -rf data.tar
  74. #ssh $SSH_USER@$SSH_HOST -p $SSH_PORT "tar -c DIRS_FOR_DUMP" > data.tar
  75. tar -c $DIRS_FOR_DUMP > data.tar
  76.  
  77. tar -cvzf $DUMP_FILE dump.sql data.tar
  78.  
  79. if [ -x "$DROPBOX_UPLOADER" ]
  80. then
  81. $DROPBOX_UPLOAD upload $DUMP_FILE $DUMP_FILE
  82. fi
  83.  
  84. rm -rf dump.sql
  85. rm -rf data.tar
  86.  
  87. $SEND_NOTIFICATION "SUCCESS Pord dumped" "DB dumped to $DUMP_FILE, `du -bh $DUMP_FILE` $ADDITIONAL_INFO"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement