Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Little hint. Use It script from remote server (Rails server with application != Backup server)
- # Add to cron
- # 0 0 * * * <path to script>/dump.sh
- SSH_USER=''
- SSH_HOST=''
- SSH_PORT=''
- DB_NAME=''
- DB_USER=''
- DB_PASS=''
- MAX_SIZE=2147483648 # max size of dump directory in bytes
- SEND_NOTIFICATION='/usr/local/rvm/bin/rvm default do ruby <path to send jabber>/send_jabber.rb.tpl'
- DIRS_FOR_DUMP='<absolute path to project>/public/uploads <absolute path to project>/files'
- DUMP_STORAGE='<absolute_path to home>/dump'
- DROPBOX_UPLOADER='<absolute_path_to_dropbox_uploader.sh>'
- DROPBOX_UPLOAD="$DROPBOX_UPLOADER -f <path_to_config_file>"
- #----------------------------------------------------------
- ADDITIONAL_INFO=''
- mkdir -p $DUMP_STORAGE
- cd $DUMP_STORAGE
- DUMP_FILE=dump_`date +%Y_%m_%d__%H_%M_%S`.tar.gz
- SIZE=`du -sb ./ | awk '{print $1; exit}'`
- if [ "$MAX_SIZE" -lt "$SIZE" ]
- then
- RESERVE_DIR="dump_reserve_`date +%s`"
- mkdir -p ../$RESERVE_DIR
- last_files=`ls -Art | tail -n 2`
- all_files=`ls -Art`
- files_for_deleting="${all_files/$last_files/}"
- if [ -x "$DROPBOX_UPLOADER" ]
- then
- for delete_file in $files_for_deleting
- do
- $DROPBOX_UPLOAD delete $delete_file
- done
- fi
- for file in $last_files;
- do
- mv $file ../$RESERVE_DIR
- done
- rm -rf *
- for file in $last_files;
- do
- mv ../$RESERVE_DIR/$file ./
- done
- rm -rf ../$RESERVE_DIR
- fi
- rm -rf dump.sql
- #ssh $SSH_USER@$SSH_HOST -p $SSH_PORT "mysqldump $DB_NAME -u $DB_USER --password=$DB_PASS"> dump.sql
- mysqldump $DB_NAME -u $DB_USER --password=$DB_PASS > dump.sql
- if [ ! -s dump.sql ]; then
- $SEND_NOTIFICATION "Fail Pord dump" "Can't create dump.sql or dump db"
- exit
- fi
- rm -rf data.tar
- #ssh $SSH_USER@$SSH_HOST -p $SSH_PORT "tar -c DIRS_FOR_DUMP" > data.tar
- tar -c $DIRS_FOR_DUMP > data.tar
- tar -cvzf $DUMP_FILE dump.sql data.tar
- if [ -x "$DROPBOX_UPLOADER" ]
- then
- $DROPBOX_UPLOAD upload $DUMP_FILE $DUMP_FILE
- fi
- rm -rf dump.sql
- rm -rf data.tar
- $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