Advertisement
Guest User

Untitled

a guest
Nov 26th, 2016
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.59 KB | None | 0 0
  1. #!/bin/bash
  2. # Built by jeremysiedzik@gmail.com - any questions, feel free to contact me
  3. # ---------------------------------------------------------------------------------
  4. # Credit and Forum Backup File Location and Storage Variables
  5. # Note - after Database Transfer fixforumupdate.sh or fixcreditupdate.sh is run
  6. # in the directory defined by FRWEBSTATICFILES or CRWEBSTATICFILES on the remote server
  7. # ---------------------------------------------------------------------------------
  8.  
  9. CRWEBTIME=`date +%y-%b-%d` # this command will add the date in the backup file name
  10. CRWEBFILENAME=creditnet.backup.$CRWEBTIME.tar.gz # define the backup file name format
  11. CRWEBSRCDIR=/www/creditnet/* # source of the backup
  12. CRWEBTEMPDESDIR=/www/backups # destination of the backup file
  13. CRWEBDESTSERVER=root@development # destination user@servername
  14. CRWEBDESTDIR=/www/dev.creditnet # destination directory
  15. CRWEBSTATICFILES=/www/static-files/dev.creditnet # static file location
  16.  
  17. FRWEBTIME=`date +%y-%b-%d` # this command will add the date in the backup file name
  18. FRWEBFILENAME=forums.backup.$FRWEBTIME.tar.gz # define the backup file name format
  19. FRWEBSRCDIR=/www/consumers.creditnet.com/* # source of the backup
  20. FRWEBTEMPDESDIR=/www/backups # destination of the backup file
  21. FRWEBDESTSERVER=root@development # destination user@servername
  22. FRWEBDESTDIR=/www/devforums.creditnet.com # destination directory
  23. FRWEBSTATICFILES=/www/static-files/devforums.creditnet.com # static file location
  24.  
  25. # ---------------------------------------------------------------------------------
  26. # Credit And Forum Database Locations and Credentials
  27. # Note: CRSQLFILE and FRSQLFILE Path must exist. For example, use --> mkdir -p /www/backups <--
  28. # ---------------------------------------------------------------------------------
  29.  
  30. CRSQLFILE=creditnet.sql.`date +"%Y%m%d"`.sql # filename of the sql dump
  31. CRSQLPATH=/www/backups # local temp storage path
  32. CRSQLBACKUPPATH=/www/dev-backups # destination directory
  33. CRSQLDBSERVER=127.0.0.1 # mysql server IP
  34. CRSQLDATABASE=creditnet # mysql database name
  35. CRSQLUSER=root # mysql username
  36. CRSQLPASS=iatem13 # mysql password
  37. CRSQLDESTSERVER=root@development # destination user@servername
  38.  
  39. FRSQLFILE=forum.sql.`date +"%Y%m%d"`.sql # filename of the sql dump
  40. FRSQLPATH=/www/backups # local temp storage path
  41. FRSQLBACKUPPATH=/www/dev-backups # destination directory
  42. FRSQLDBSERVER=127.0.0.1 # mysql server IP
  43. FRSQLDATABASE=consumer_forum # mysql database name
  44. FRSQLUSER=root # mysql username
  45. FRSQLPASS=iatem13 # mysql password
  46. FRSQLDESTSERVER=root@development # destination user@servername
  47.  
  48.  
  49. # --------------------------------------------------------------------------------
  50. # Menu Options and General Layout
  51. # --------------------------------------------------------------------------------
  52.  
  53. show_menu(){
  54. NORMAL=`echo "\033[m"`
  55. MENU=`echo "\033[36m"` #Blue
  56. NUMBER=`echo "\033[33m"` #yellow
  57. FGRED=`echo "\033[41m"`
  58. RED_TEXT=`echo "\033[31m"`
  59. ENTER_LINE=`echo "\033[33m"`
  60. echo ""
  61. echo -e "${MENU}******* File Transfers **********************${NORMAL}"
  62. echo ""
  63. echo -e "${MENU}**${NUMBER} 1)${MENU} Copy Prod to Dev - Main Website ${NORMAL}"
  64. echo -e "${MENU}**${NUMBER} 2)${MENU} Copy Prod to Dev - Forums ${NORMAL}"
  65. echo ""
  66. echo -e "${MENU}******* Database Transfers ******************${NORMAL}"
  67. echo ""
  68. echo -e "${MENU}**${NUMBER} 3)${MENU} Copy Prod to Dev - Main DB ${NORMAL}"
  69. echo -e "${MENU}**${NUMBER} 4)${MENU} Copy Prod to Dev - Forums DB ${NORMAL}"
  70. echo ""
  71. echo -e "${MENU}******* Backup Directories ******************${NORMAL}"
  72. echo ""
  73. echo -e "${MENU}**${NUMBER} 5)${MENU} Backup Development - Main Website ${NORMAL}"
  74. echo -e "${MENU}**${NUMBER} 6)${MENU} Backup Development - Forums Website ${NORMAL}"
  75. echo ""
  76. echo -e "${MENU}*********************************************${NORMAL}"
  77. echo ""
  78. echo -e "${ENTER_LINE}Please enter a menu option and enter or ${RED_TEXT}enter to exit. ${NORMAL}"
  79. read -p "--> " opt
  80. }
  81. function option_picked() {
  82. COLOR='\033[01;31m' # bold red
  83. RESET='\033[00;00m' # normal white
  84. MESSAGE=${@:-"${RESET}Error: No message passed"}
  85. echo -e "${COLOR}${MESSAGE}${RESET}"
  86. }
  87.  
  88. clear
  89. show_menu
  90. while [ opt != '' ]
  91. do
  92. if [[ $opt = "" ]]; then
  93. exit;
  94. else
  95. case $opt in
  96. 1) clear;
  97. option_picked "Option 1 Picked - Copy Prod to Dev - Main Website";
  98. sudo /usr/bin/rsync -avh $CRWEBSRCDIR $CRWEBDESTSERVER:$CRWEBDESTDIR;
  99. sudo ssh $CRWEBDESTSERVER cp -rf $CRWEBSTATICFILES/* $CRWEBDESTDIR;
  100. show_menu;
  101. ;;
  102.  
  103. 2) clear;
  104. option_picked "Option 2 Picked - Copy Prod to Dev - Forums";
  105. sudo /usr/bin/rsync -avh $FRWEBSRCDIR $FRWEBDESTSERVER:$FRWEBDESTDIR;
  106. sudo ssh $FRWEBDESTSERVER cp -rf $FRWEBSTATICFILES/* $FRWEBDESTDIR;
  107. show_menu;
  108. ;;
  109.  
  110. 3) clear;
  111. option_picked "Option 3 Picked - Copy Prod to Dev - Main Website DB";
  112. sudo unalias rm 2> /dev/null;
  113. sudo rm $CRSQLPATH/$CRSQLFILE 2> /dev/null;
  114. sudo rm $CRSQLPATH/$CRSQLFILE.gz 2> /dev/null;
  115. sudo ssh $CRSQLDESTSERVER rm $CRSQLBACKUPPATH/* 2> /dev/null;
  116. sudo echo "About to run Mysqldump";
  117. sudo sleep 3;
  118. sudo /usr/bin/mysqldump --opt --user=$CRSQLUSER --password=$CRSQLPASS $CRSQLDATABASE > $CRSQLPATH/$CRSQLFILE;
  119. sudo gzip $CRSQLPATH/$CRSQLFILE;
  120. sudo echo "$CRSQLPATH/$CRSQLFILE.gz was created:";
  121. sudo chmod 700 $CRSQLPATH/$CRSQLFILE.gz;
  122. sudo ls -l $CRSQLPATH/$CRSQLFILE.gz;
  123. sudo echo "About to move sql file to remote Dev Server";
  124. sudo sleep 3;
  125. sudo /usr/bin/rsync -avh $CRSQLPATH/$CRSQLFILE.gz $CRSQLDESTSERVER:$CRSQLBACKUPPATH;
  126. sudo echo "About to drop remote Dev DB";
  127. sudo sleep 3;
  128. sudo ssh $CRSQLDESTSERVER /usr/bin/mysqladmin -f -u $CRSQLUSER -p$CRSQLPASS drop $CRSQLDATABASE;
  129. sudo echo "About to Gunzip remote SQL file";
  130. sudo sleep 3;
  131. sudo ssh $CRSQLDESTSERVER /bin/gunzip $CRSQLBACKUPPATH/$CRSQLFILE.gz;
  132. sudo echo "About to create remote Dev DB --> $CRSQLDATABASE <--";
  133. sudo sleep 3;
  134. sudo ssh $CRSQLDESTSERVER /usr/bin/mysqladmin -f -u $CRSQLUSER -p$CRSQLPASS create $CRSQLDATABASE;
  135. sudo echo "About to import SQL records into --> $CRSQLDATABASE <--";
  136. sudo sleep 3;
  137. sudo echo "mysql -f -u $CRSQLUSER -p$CRSQLPASS $CRSQLDATABASE < $CRSQLBACKUPPATH/$CRSQLFILE" >> $CRSQLPATH/creditimportsql.sh;
  138. sudo chmod 700 $CRSQLPATH/creditimportsql.sh;
  139. sudo /usr/bin/rsync -avh $CRSQLPATH/creditimportsql.sh $CRSQLDESTSERVER:$CRSQLBACKUPPATH;
  140. sudo ssh $CRSQLDESTSERVER $CRSQLBACKUPPATH/creditimportsql.sh;
  141. sudo ssh $CRSQLDESTSERVER $CRWEBSTATICFILES/fixcreditupdate.sh;
  142. sudo ssh $CRSQLDESTSERVER rm $CRSQLBACKUPPATH/credit* 2> /dev/null;
  143. show_menu;
  144. ;;
  145.  
  146. 4) clear;
  147. option_picked "Option 4 Picked - Copy Prod to Dev - Forums DB";
  148. sudo unalias rm 2> /dev/null;
  149. sudo rm $FRSQLPATH/$FRSQLFILE 2> /dev/null;
  150. sudo rm $FRSQLPATH/$FRSQLFILE.gz 2> /dev/null;
  151. sudo ssh $FRSQLDESTSERVER rm $FRSQLBACKUPPATH/* 2> /dev/null;
  152. sudo echo "About to run Mysqldump";
  153. sudo sleep 3;
  154. sudo /usr/bin/mysqldump --opt --user=$FRSQLUSER --password=$FRSQLPASS $FRSQLDATABASE > $FRSQLPATH/$FRSQLFILE;
  155. sudo gzip $FRSQLPATH/$FRSQLFILE;
  156. sudo echo "$FRSQLPATH/$FRSQLFILE.gz was created:";
  157. sudo chmod 700 $FRSQLPATH/$FRSQLFILE.gz;
  158. sudo ls -l $FRSQLPATH/$FRSQLFILE.gz;
  159. sudo echo "About to move sql file to remote Dev Server";
  160. sudo sleep 3;
  161. sudo /usr/bin/rsync -avh $FRSQLPATH/$FRSQLFILE.gz $FRSQLDESTSERVER:$FRSQLBACKUPPATH;
  162. sudo echo "About to drop remote Dev DB";
  163. sudo sleep 3;
  164. sudo ssh $FRSQLDESTSERVER /usr/bin/mysqladmin -f -u $FRSQLUSER -p$FRSQLPASS drop $FRSQLDATABASE;
  165. sudo echo "About to Gunzip remote SQL file";
  166. sudo sleep 3;
  167. sudo ssh $FRSQLDESTSERVER /bin/gunzip $FRSQLBACKUPPATH/$FRSQLFILE.gz;
  168. sudo echo "About to create remote Dev DB --> $FRSQLDATABASE <--";
  169. sudo sleep 3;
  170. sudo ssh $FRSQLDESTSERVER /usr/bin/mysqladmin -f -u $FRSQLUSER -p$FRSQLPASS create $FRSQLDATABASE;
  171. sudo echo "About to import SQL records into --> $FRSQLDATABASE <--";
  172. sudo sleep 3;
  173. sudo echo "mysql -f -u $FRSQLUSER -p$FRSQLPASS $FRSQLDATABASE < $FRSQLBACKUPPATH/$FRSQLFILE" >> $FRSQLPATH/forumimportsql.sh;
  174. sudo chmod 700 $FRSQLPATH/forumimportsql.sh;
  175. sudo /usr/bin/rsync -avh $FRSQLPATH/forumimportsql.sh $FRSQLDESTSERVER:$FRSQLBACKUPPATH;
  176. sudo ssh $FRSQLDESTSERVER $FRSQLBACKUPPATH/forumimportsql.sh;
  177. sudo ssh $FRSQLDESTSERVER $FRWEBSTATICFILES/fixforumupdate.sh;
  178. sudo ssh $FRSQLDESTSERVER rm $FRSQLBACKUPPATH/forum* 2> /dev/null;
  179. show_menu;
  180. ;;
  181.  
  182. 5) clear;
  183. option_picked "Option 5 Picked - Backup Production DB - Main Website";
  184. sudo tar -cpzf $CRWEBTEMPDESDIR/$CRWEBFILENAME $CRWEBSRCDIR;
  185. sudo chmod 700 /www/backups/creditnet*;
  186. sudo /usr/bin/rsync -avh /www/backups/creditnet* root@development:/www/dev-backups/;
  187. sudo rm -rf /www/backups/creditnet*;
  188. show_menu;
  189. ;;
  190.  
  191. 6) clear;
  192. option_picked "Option 6 Picked - Backup Production DB - Forums";
  193. sudo tar -cpzf $FRWEBTEMPDESDIR/$FRWEBFILENAME $FRWEBSRCDIR;
  194. sudo chmod 700 /www/backups/forums*;
  195. sudo /usr/bin/rsync -avh /www/backups/forums* root@development:/www/dev-backups/;
  196. sudo rm -rf /www/backups/forums*;
  197. show_menu;
  198. ;;
  199.  
  200. x)exit;
  201. ;;
  202.  
  203. \n)exit;
  204. ;;
  205.  
  206. *)clear;
  207. option_picked "Pick an option from the menu";
  208. show_menu;
  209. ;;
  210. esac
  211. fi
  212. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement