Guest User

Untitled

a guest
May 25th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.69 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # VARIABLES
  4. CONFIG_FILE="./app/etc/local.xml"
  5. DUMP_FILE="./var/db-sales-users.sql"
  6. TABLES="sales_bestsellers_aggregated_daily sales_bestsellers_aggregated_monthly sales_bestsellers_aggregated_yearly sales_billing_agreement sales_billing_agreement_order sales_flat_creditmemo sales_flat_creditmemo_comment sales_flat_creditmemo_grid sales_flat_creditmemo_item sales_flat_invoice sales_flat_invoice_comment sales_flat_invoice_grid sales_flat_invoice_item sales_flat_order sales_flat_order_address sales_flat_order_grid sales_flat_order_item sales_flat_order_payment sales_flat_order_status_history sales_flat_quote sales_flat_quote_address_item sales_flat_quote_item sales_flat_quote_item_option sales_flat_quote_payment sales_flat_quote_shipping_rate
  7. sales_flat_shipment sales_flat_shipment_comment sales_flat_shipment_grid sales_flat_shipment_item sales_flat_shipment_track sales_invoiced_aggregated sales_invoiced_aggregated_order sales_order_aggregated_created sales_order_aggregated_updated sales_order_status sales_order_status_label sales_order_status_state sales_order_tax sales_order_tax_item sales_payment_transaction
  8. sales_recurring_profile sales_recurring_profile_order sales_refunded_aggregated sales_refunded_aggregated_order sales_shipping_aggregated sales_shipping_aggregated_order customer_address_entity customer_address_entity_datetime customer_address_entity_decimal customer_address_entity_int customer_address_entity_text customer_address_entity_varchar customer_eav_attribute customer_eav_attribute_website
  9. customer_entity customer_entity_datetime customer_entity_decimal customer_entity_int customer_entity_text customer_entity_varchar customer_form_attribute customer_group eav_entity_store"
  10.  
  11. # USAGE
  12. function usage()
  13. {
  14. cat <<EOF
  15. Usage: $0 [OPTIONS]
  16. Version: 1.1
  17. Author: Sean Grünböck / studio19.at
  18. Changedate: 26.06.2015
  19.  
  20. Use this script to dump or import Users, Sales (Invoices,etc.) from LIVE DB to STAGING DB
  21.  
  22. OPTIONS:
  23. -d Dump
  24. -i Import
  25.  
  26. EOF
  27. }
  28.  
  29. # FUNCTIONS
  30. function message()
  31. {
  32. STRIP=$(for i in {1..38}; do echo -n "#"; done)
  33. echo -e "$STRIP\n$1\n$STRIP"
  34. }
  35.  
  36. function question()
  37. {
  38. [[ ! "$OPT_F" == "" ]] && return 0
  39. echo -n "$1 [y/N]: "
  40. read CONFIRM
  41. [[ "$CONFIRM" == "y" ]] || [[ "$CONFIRM" == "Y" ]] && return 0
  42. return 1
  43. }
  44.  
  45. # GET OPTIONS
  46. while getopts ":di" OPTION; do
  47. case $OPTION in
  48. h)
  49. usage
  50. exit 0
  51. ;;
  52. *)
  53. [[ "$OPTARG" == "" ]] && OPTARG='"-'$OPTION' 1"'
  54. OPTION="OPT_$OPTION"
  55. eval ${OPTION}=$OPTARG
  56. ;;
  57. esac
  58. done
  59.  
  60. [[ "$OPT_d$OPT_i" == "" ]] && usage && exit 1
  61.  
  62. # GET PARAMETERS FROM LOCAL.XML
  63. function getParam()
  64. {
  65. RETVAL=$(grep -Eoh "<$1>(<!\[CDATA\[)?(.*)(\]\]>)?<\/$1>" $TMP_FILE | sed "s#<$1><!\[CDATA\[##g;s#\]\]><\/$1>##g")
  66. if [[ "$2" == "sanitise" ]]; then
  67. RETVAL=$(echo "$RETVAL" | sed 's/"/\\\"/g')
  68. fi
  69. echo -e "$RETVAL"
  70. }
  71.  
  72. which mktemp >/dev/null 2>&1
  73. [ $? -eq 0 ] && TMP_FILE=$(mktemp ./var/local.xml.XXXXX) || TMP_FILE="./var/.tmp.local.xml"
  74. sed -ne '/default_setup/,/\/default_setup/p' $CONFIG_FILE > $TMP_FILE
  75.  
  76. IGNORE_STRING=""
  77. DBHOST=$(getParam "host")
  78. DBUSER=$(getParam "username")
  79. DBPASS=$(getParam "password" "sanitise" )
  80. DBNAME=$(getParam "dbname")
  81. TABLE_PREFIX=$(getParam "table_prefix")
  82. [ -f $TMP_FILE ] && rm $TMP_FILE
  83.  
  84. if [[ ! "$OPT_d" == "" ]]; then
  85. mysqldump -h $DBHOST -u $DBUSER -p$DBPASS --routines --triggers --single-transaction $DBNAME $TABLES >> $DUMP_FILE
  86. message "dumped"
  87. elif [[ ! "$OPT_i" == "" ]]; then
  88. [ ! -f "$DUMP_FILE" ] && error "SQL file does not exist"
  89. question "Are you sure you want to restore $DUMP_FILE to $DBNAME?"
  90. if [ $? -eq 0 ]; then
  91. mysql -h $DBHOST -u $DBUSER -p$DBPASS $DBNAME <$DUMP_FILE
  92. message "MYSQL IMPORT COMPLETE"
  93. fi
  94. exit 0
  95.  
  96. fi
Add Comment
Please, Sign In to add comment