LINUX.ORG.RU
ФорумAdmin

Кто чем делает бэкапы ? Насоветуйте софта - скриптов.


0

1

Нада бэкапить сайты по расписанию - база sql (раз скажем в три часа) и файлы сайта (скажем в неделю). Сайты разные, на разных хостах - блоги, форумы, где то динамический контент, где то статика. Разное все очень.

Посоветуйте программ, скриптов - чем больше, тем лучше.

Ищу наилучшее решение.

Ищу наилучшее решение.

Лучшие решения не ищут, их пишут.

GotF ★★★★★
()

Раньше использовал backuppc, сейчас — rdiff-backup.

baverman ★★★
()
[root@hostname ~]# crontab -l
7 2,4 * * * /usr/local/bin/bash /usr/local/www/server-backup
[root@hostname ~]# cat /usr/local/www/server-backup
#!/usr/local/bin/bash

# Run as root
set -u

unset CDPATH
PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/root/bin"

MYSQLUSER=$(cat /var/db/mysql/.mysql_user)

MAINDIR='/usr/local/www'
WIKIDIR="$MAINDIR/mediawiki"
BACKUPDIR="$MAINDIR/backup"
TARDIR="$BACKUPDIR"
CONFIG="$MAINDIR/backup-files"

HOUR=$(date +"%Y-%m-%d--%H")
DAY=$(date +"%Y-%m-%d")
MONTH=$(date +"%Y-m%m")
WEEK=$(date +"%Y-w%U")

DUMPOPT='--skip-opt --add-drop-table --add-locks --lock-tables  --create-options --set-charset'

TAR='/usr/bin/tar cjf'
MYSQLDUMP='/usr/local/bin/mysqldump'
BZIP2='/usr/bin/bzip2'

# какие БД резервировать
DB='mysql wikidb'

REMOVE_OLDEST ()
{
	mask=$(echo "$1" | cut -d- -f 1-2)*
	MAX_FILES=${2:-7}
	echo -en "REMOVE_OLDEST: ${mask} : "
	files="$(ls -1t "${TARDIR}"/${mask} 2>/dev/null )"
	echo "${files}" | wc -l
	if expr "$(echo "$files" | wc -l)" '>' "$MAX_FILES" &>/dev/null; then
		to_remove=$(echo "$files" | tail -1)
		echo "Removing ${to_remove}"
		rm -f "${to_remove}"
		return 0
	fi
	return 1
}

PROMOTE ()
{
    if ! [ -f "$2" ]; then
        cp "$1" "$2"
        REMOVE_OLDEST "$2" "$3"
    fi
}


mkdir -p "$BACKUPDIR" || exit 1
cd "$BACKUPDIR" || exit 1



# === Разные настройки ===
CONFIG_DAYLY="config-dayly-${DAY}.tar.bz2"
CONFIG_WEEKLY="config-weekly-${WEEK}.tar.bz2"
CONFIG_MONTHLY="config-monthly-${MONTH}.tar.bz2"

if ! [ -f "${CONFIG_DAYLY}" ]; then
    ${TAR} "${CONFIG_DAYLY}" -T "$CONFIG"
    REMOVE_OLDEST "$CONFIG_DAYLY" 7
fi
PROMOTE "${CONFIG_DAYLY}" "${CONFIG_WEEKLY}"  4
PROMOTE "${CONFIG_DAYLY}" "${CONFIG_MONTHLY}" 4



# === Базы данных ===
for db in $DB; do
    DB_DAYLY="mysql.${db}-dayly-${DAY}.bz2"
    DB_WEEKLY="mysql.${db}-weekly-${WEEK}.bz2"
    DB_MONTHLY="mysql.${db}-monthly-${MONTH}.bz2"
    if ! [ -f "${DB_DAYLY}" ]; then
        $MYSQLDUMP $DUMPOPT $db $MYSQLUSER | $BZIP2 -9 -c > "$DB_DAYLY"
        REMOVE_OLDEST "$DB_DAYLY" 7
    fi
    PROMOTE "${DB_DAYLY}" "${DB_WEEKLY}"  4
    PROMOTE "${DB_DAYLY}" "${DB_MONTHLY}" 4
done


# === Картинки ===
IMAGES_DAYLY="images-dayly-${DAY}.tar.bz2"
IMAGES_WEEKLY="images-weekly-${WEEK}.tar.bz2"
IMAGES_MONTHLY="images-monthly-${MONTH}.tar.bz2"

if ! [ -f "${IMAGES_DAYLY}" ]; then
    ${TAR} ${IMAGES_DAYLY} --exclude=thumb --exclude=temp -C "$WIKIDIR" "$WIKIDIR/images"
    REMOVE_OLDEST $IMAGES_DAYLY 1
fi
PROMOTE "${IMAGES_DAYLY}" "${IMAGES_WEEKLY}"  1

ls -lh

exit 0
r2d2
()

Я делаю с deja-dup, desktop.

uju ★★
()

с бэкапом БД сложнее, а вообще bacula отлично подходит и по результатам из mysql можно красивые графики себе построить

xpahos ★★★★★
()

файлы: rsync
база:
mysqldump если таблицы InnoDB
mysqlhotcopy если Myisam

если много серверов - backuppc (может по smb, ssh, rsync)

x97Rang ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.