• Как организовать удобное и простое (Files ZIP+MySQL Dump) автоматическое резервное копирование на сервере?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    [root@backup ~]# cat /etc/cron.daily/backup_db.sh
    #! /bin/bash -

    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

    MYSQL_SERVERS="srv01.db.com srv02.db.com"
    DATE=`date +%Y.%m.%d-%R`
    BACKUP_PATH="/mnt/backup/db"
    BACKUP_EXT=".sql.bz2"
    SAVE_DAYS="14"

    DB_LOGIN="backup"
    DB_PASS="тут сложный пароль"

    for srv in ${MYSQL_SERVERS}
    do
    if [ ! -d ${BACKUP_PATH}"/"${srv} ]; then
    echo "Directory for ${srv} doesn't exists, creating..."
    mkdir ${BACKUP_PATH}"/"${srv}
    fi
    for db in `mysql -h ${srv} -u${DB_LOGIN} -p${DB_PASS} -e 'show databases' | tail -n +2 | egrep -v "lost\+found|\.snap|information_schema|performance_schema"`
    do
    echo "Dumping database ${db} on ${srv}"
    mysqldump -h ${srv} -u${DB_LOGIN} -p${DB_PASS} --add-drop-database --add-drop-table --add-locks --create-options -e -F --flush-privileges -l -q -B ${db} | \
    bzip2 -9c > "${BACKUP_PATH}/${srv}/${db}_${DATE}${BACKUP_EXT}"
    echo
    done
    done
    find ${BACKUP_PATH} -mindepth 1 -mtime +${SAVE_DAYS} -delete -exec echo "Deleting old file: " {} \;

    скрипт крутится уже с пару лет, бекапит все базы на всех перечисленных серверах
    ну как настроить привилегии расписывать надо?
    Ответ написан
    8 комментариев