Сегодня 6 мая, понедельник ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7272
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Евгений Ламской
Евгений Ламской
Голосов: 1
Адрес блога: http://lamskoy.livejournal.com/
Добавлен: 2010-05-18 17:01:15
 

Утилита для быстрого создания дампа базы Magento

2010-01-11 13:14:43 (читать в оригинале)

По долгу службы мне приходится часто делать дампы баз многочисленных установленных копий Magento.
Руками это делать довольно утомительно, так как приходится исключать из дампа самые большие по количеству данных таблицы со статистикой. Чтобы облегчить себе жизнь, написал небольшую консольную утилиту.


#!/bin/bash

usage()
{
cat << EOF
usage: $0 options

This script dumps magento database
excluding statistics

$0 -d magento -f dump

will cause writing to dump.sql.bz2 with contents of "magento" DB

OPTIONS [required]:
   -d      database name
   -f      file prefix to dump

OPTIONS [optional]:
   -h      msyql host (localhost by default)
   -u      mysql user (root by default)
   -p      password   (empty by default)
   -s      show command only, not execute
   -t      log tables prefix (empty by default)

EOF
}

DB_HOST="localhost"
DB_USER="root"
DB_PASS=""
DB_NAME=""
SHOW_ONLY=""
OUT_FILE=""
TABLE_PREFIX=""
while getopts “t:f:u:p:d:h:s” OPTION
do
     case $OPTION in
         s)  SHOW_ONLY="true" ;;
         h)  DB_HOST=$OPTARG  ;;
         u)  DB_USER=$OPTARG  ;;
         p)  DB_PASS=$OPTARG  ;;
         d)  DB_NAME=$OPTARG  ;;
         f)  OUT_FILE=$OPTARG ;;
         t)  TABLE_PREFIX=$OPTARG ;;
         ?)  usage
             exit
             ;;
     esac
done

if [[ -z $DB_NAME ]] || [[ -z $OUT_FILE ]]
then
     usage
     exit 1
fi

PASS_PART=""
if [ ! -z $DB_PASS ]
then
        PASS_PART="--password=$DB_PASS"
fi

COMMON="mysqldump ${DB_NAME} -h ${DB_HOST} --user=${DB_USER} ${PASS_PART}"
SKIPPED_TABLES=("log_url_info" "log_visitor" "log_visitor_info" "log_url" "report_event")

CMD="${COMMON}"
CMD2="${COMMON} -d --tables "
for table in ${SKIPPED_TABLES[@]}
do
        CMD="$CMD --ignore-table=${DB_NAME}.${TABLE_PREFIX}${table}"
        CMD2="$CMD2 ${TABLE_PREFIX}${table}"
done


if [ ! -z $SHOW_ONLY ]
then
        echo "$CMD > $OUT_FILE.sql"
        echo "$CMD2 >> $OUT_FILE.sql"
        echo "bzip2 $OUT_FILE.sql"     
else
        $CMD > "$OUT_FILE.sql"
        $CMD2 >> "$OUT_FILE.sql"
        bzip2 "$OUT_FILE.sql"   
        ls -lash "$OUT_FILE.sql.bz2"
fi
#

Тэги: bash, magento, mysql, mysqldump

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.