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