Skip to content

Instantly share code, notes, and snippets.

@mborodov
Last active February 7, 2024 23:56
Show Gist options
  • Select an option

  • Save mborodov/b0c4e0b8b7f3c878d91efabb8a98b043 to your computer and use it in GitHub Desktop.

Select an option

Save mborodov/b0c4e0b8b7f3c878d91efabb8a98b043 to your computer and use it in GitHub Desktop.
Dump bitrix database with settings from dbconn.php and Bitrix core
#!/bin/bash
doc_root=$1
# проверим передали ли параметр док рута
if [ -z $doc_root ]; then
echo Usage: $0 /path/to/document/root [backup_name]
exit
fi
# если не указано имя дампа по умолчанию dump
if [ -z $name ]; then
name=bitrix_core
fi
# если нету папки бекапов создаст папку
backup_dir=$doc_root/bitrix/backup
if [ ! -e $backup_dir ]; then
mkdir $backup_dir
fi
# создаем бекап
tar -zcvf $backup_dir/$name.tar.gz $doc_root/bitrix --exclude "$doc_root/bitrix/backup" --exclude "$doc_root/bitrix/cache" --exclude "$doc_root/bitrix/cache" --exclude "$doc_root/bitrix/managed_cache" --exclude "$doc_root/bitrix/stack_cache"
echo OK && exit
echo Error
#!/bin/bash
doc_root=$1
# проверим передали ли параметр док рута
if [ -z $doc_root ]; then
echo Usage: $0 /path/to/document/root [backup_name]
exit
fi
# если не указано имя дампа по умолчанию dump
if [ -z $name ]; then
name=dump
fi
dbconn=$doc_root/bitrix/php_interface/dbconn.php
# функция парсит строчки соединения с БД
readcfg() {
grep $1 $dbconn | sed 's/.*"\(.*\)".*/\1/'
}
host=`readcfg DBHost`
username=`readcfg DBLogin`
password=`readcfg DBPassword`
database=`readcfg DBName`
# проверяем настройку кодировки
utf=`grep 'BX_UTF' $dbconn | grep true`
if [ -z "$utf" ]; then
charset=cp1251
else
charset=utf8
fi
# если нету папки бекапов создаст папку
backup_dir=$doc_root/bitrix/backup
if [ ! -e $backup_dir ]; then
mkdir $backup_dir
fi
# создаем бекап
cd $doc_root &&
mysqldump -h$host -u$username -p$password --default-character-set=$charset --no-data $database > $backup_dir/$name.sql.gz &&
mysqldump -h$host -u$username -p$password --default-character-set=$charset --no-create-info --ignore-table=$database.b_stat_adv --ignore-table=$database.b_stat_adv_day --ignore-table=$database.b_stat_adv_event --ignore-table=$database.b_stat_adv_event_day --ignore-table=$database.b_stat_adv_guest --ignore-table=$database.b_stat_adv_page --ignore-table=$database.b_stat_adv_searcher --ignore-table=$database.b_stat_browser --ignore-table=$database.b_stat_city --ignore-table=$database.b_stat_city_day --ignore-table=$database.b_stat_city_ip --ignore-table=$database.b_stat_country --ignore-table=$database.b_stat_country_day --ignore-table=$database.b_stat_day --ignore-table=$database.b_stat_day_site --ignore-table=$database.b_stat_ddl --ignore-table=$database.b_stat_event --ignore-table=$database.b_stat_event_day --ignore-table=$database.b_stat_event_list --ignore-table=$database.b_stat_guest --ignore-table=$database.b_stat_hit --ignore-table=$database.b_stat_page --ignore-table=$database.b_stat_page_adv --ignore-table=$database.b_stat_path --ignore-table=$database.b_stat_path_adv --ignore-table=$database.b_stat_path_cache --ignore-table=$database.b_stat_phrase_list --ignore-table=$database.b_stat_referer --ignore-table=$database.b_stat_referer_list --ignore-table=$database.b_stat_searcher --ignore-table=$database.b_stat_searcher_day --ignore-table=$database.b_stat_searcher_hit --ignore-table=$database.b_stat_searcher_params --ignore-table=$database.b_stat_session --ignore-table=$database.b_stat_session_data --ignore-table=$database.b_stat_search_content --ignore-table=$database.b_search_content_freq --ignore-table=$database.b_search_content_param --ignore-table=$database.b_search_content_right --ignore-table=$database.b_search_content_site --ignore-table=$database.b_search_content_stem --ignore-table=$database.b_search_content_text --ignore-table=$database.b_search_content_title --ignore-table=$database.b_search_stem --ignore-table=$database.b_search_suggest --ignore-table=$database.b_search_tags --ignore-table=$database.b_search_user_right --ignore-table=$database.b_event_log $database | gzip -9 >> $backup_dir/$name.sql.gz &&
echo OK && exit
echo Error
@YogSottot

Copy link
Copy Markdown

In the new version of bitrix the parameters of connection to the database are stored only in .settings.php
They are no longer stored in dbconn.php.

So:

settings=${doc_root}/bitrix/.settings.php

readcfg() {
        grep -m 1 $1 ${settings} | sed "s/.*' => '\(.*\)',.*/\1/"
}

host=`readcfg host`
username=`readcfg login`
password=`readcfg password`
database=`readcfg database`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment