Linux Выполните резервное копирование MySQL на основе времени путь от Webmin

Я пытался настроить запланированное задание в Linux Ubuntu Server 12.04 (CronJob) для ежедневного резервного копирования всех моих баз данных MySQL в полночь.

Я установил известный Webmin (приятный веб-интерфейс для управления веб-серверами).

Итак, моя проблема: при выполнении резервного копирования файлы перезаписываются!

Это означает, что резервная копия позавчера была потеряна, сохраняется только резервная копия "вчера"!

Я пробовал что-то вроде установки динамического пути к файлу, как:

/ Var/ WWW /mysqlbackups/%d-%m-% г

но у меня не было успеха с этим:(

Кто-нибудь может мне помочь.

Большое спасибо, ребята.

4 ответа

Решение

Я сделал сценарий оболочки (не для webmin). Поместите это в /etc/cron.daily.

Скрипты создают резервную копию базы данных (сохраняет ее как.gz), затем загружают ее по ssh на другой сервер. Для автора. Я настроил SSH ключи, поэтому пароль не требуется. Файлы резервных копий имеют уникальное имя, поэтому вы не должны перезаписывать файлы резервных копий.

Вот как вы можете создать имя файла в скрипте:

now=`date  +%Y%m%d_%H%M`
dst_path=/var/local/backups
filename="$dst_path/$database.$now.sql.gz"

Затем вы должны написать небольшой скрипт, который удаляет все файлы резервных копий старше x дней.

#!/bin/sh

#
# Creates a backup of a MySQL databases and uses ssh (sFTP) to send if  to another server
# This script shouldbe called from the crontab

PATH=/usr/sbin:/usr/bin:/sbin:/bin

# MySQL user and password
mysql_cmd=/opt/bitnami/mysql/bin/mysqldump
mysql_usr=user_name
mysql_pass=password

# destination ssh
dst_user=user_name
dst_hostname=192.168.1.1

# Database to backup
database=test

# create timestamp
now=`date  +%Y%m%d_%H%M`

# where we store the files
dst_path=/var/local/backups

# backup filename
filename="$dst_path/$database.$now.sql.gz"
dst_filename="$database.$now.sql.gz"

# run backup
$mysql_cmd -u $mysql_usr --password=$mysql_pass  $database | gzip > $filename

# upload to sever (ssh)
scp $filename $dst_user@$dst_hostname:

MySQL Database Server > Module Config > Выберите "Да" на "Замена strftime пунктов назначения резервного копирования?"

Это работает для меня!:)

Вы можете использовать динамический путь, но перед тем как включить его в настройках модуля:

System > Filesystem Backup > Module Config > Do strftime substitution of backup destinations? > Yes

(Если вы не уверены в заполнителях, просто нажмите на текст "Заменить strftime на места назначения резервных копий?" В конфигурации и вы увидите справку.)

У меня была такая же проблема, и я решил ее так:

С сервера выберите MySQL Database Server. Перейдите в раздел "Конфигурация модуля" (вверху слева) и выберите " Заменять ли strftime места назначения резервной копии" да.

Я использую формат db_%d-%m-%Y.sql для резервных копий. (Db_13-03-2013.sql)

Сделать это можно следующим образом

Webmin > Сервер базы данных MySQL> выберите базу данных> база данных резервного копирования> путь к файлу в Другой вариант резервного копирования, который вы можете использовать> Команда для запуска после резервного копирования Введите ======> путь к файлу mv / имя файла путь к файлу / имя_файла_date +"%Y%m%d%H%M%S".sql

Другие вопросы по тегам