Skip to content

Instantly share code, notes, and snippets.

@mborodov
Last active February 7, 2024 23:56
Show Gist options
  • Save mborodov/b0c4e0b8b7f3c878d91efabb8a98b043 to your computer and use it in GitHub Desktop.
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

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