Your IP : 18.220.204.192


Current Path : /var/www/axolotl/data/www/
Upload File :
Current File : /var/www/axolotl/data/www/create-bitrix-backup.sh

#!/usr/bin/env bash

SCRIPT_DIR="`dirname $0`"

BACKUP_ROOT="$HOME/backup"

SOURCE_PATH="$1"
BACKUP_NAME="$2"

function checkDocumentRoot() {
        local path="$1"

        [ ! -d "$path" ] && {
                echo " ** Root $path is not an existing directory"
                return 1
        }

        [ ! -d "$path/bitrix" ] && {
                echo " ** Root $path does not contain bitrix/"
                return 1
        }

        return 0
}

[ -z "$SOURCE_PATH" ] && {
	echo "Syntax: `basename $0` <source_document_root> <backup_name>" >&2
	exit 1
}

[ -z "$BACKUP_NAME" ] && {
	echo "Syntax: `basename $0` <source_document_root> <backup_name>" >&2
	exit 1
}


checkDocumentRoot "$SOURCE_PATH" || {
	echo " !! Failed to check source document root, exiting." >&2
	exit 1
}

BACKUP_PATH="$BACKUP_ROOT/$BACKUP_NAME"

#rm -rf "$BACKUP_PATH"
mkdir -p "$BACKUP_PATH/files"
echo "Created `date` by $0" > "$BACKUP_PATH/readme-auto.txt"

echo -e "\n -- Creating files backup\n\n"
rsync -av --delete --delete-excluded --exclude bitrix/backup --exclude upload/ --exclude bitrix/cache --exclude bitrix/managed_cache --exclude bitrix/stack_cache --exclude bitrix/html_pages  "$SOURCE_PATH/" "$BACKUP_PATH/files" 

mysqlArgs="`php "$SCRIPT_DIR/get-mysql-command-args.php" "$SOURCE_PATH"`"

[ -z "$mysqlArgs" ] && {
	echo " !! Failed to get Mysql credentials, exiting." >&2
	exit 1
}

eval set -- $mysqlArgs

username="$1"
password="$2"
host="$3"
dbname="$4"

echo -e "\n -- Creating database backup\n\n"
mysqldump -u "$username" -p"$password" -h "$host" "$dbname"  | gzip > "$BACKUP_PATH/db.sql.gz"