Конечно в самом Bitrix есть механизм резервного копирования, а кроме того есть такая статья Резервное копирование по расписанию. Но не одно из решений не будет эффективным если в базе данных хранятся не только таблицы Bitrix, а бекапить надо только их. В результате написал небольшой скрипт взяв за основу оригинальный скрипт резервного копирования и переписав в нем алгоритм копирования базы данных в результате будут бекапится только Битриксовые таблицы с префиксом b_ , а кроме того в моих конфигах Битрикса есть закомментированные переменные, поэтому поправил парсинг конфиг файла чтобы не было конфликтов.
#!/bin/sh
doc_root=$1
if [ -z $doc_root ]; then
echo Usage: $0 /path/to/document/root
exit
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
mysql -h$host -u$username -p$password -N information_schema -e "SELECT TABLE_NAME FROM TABLES WHERE TABLE_SCHEMA = '$database' AND TABLE_NAME LIKE 'b\_%'" > tables.txt
mysqldump -h$host -u$username -p$password --default-character-set=$charset $database `cat tables.txt` > dump.sql
tar czf dump_`date +%Y%m%d`.tgz dump.sql
rm -f tables.txt dump.sql