[Сценарий] Резервное копирование БД и каталогов сервера (для Linux)

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Резервное копирование БД и каталогов сервера (для Linux)

Сообщение skysilver » Пн апр 27, 2015 1:17 am

gagarin74 писал(а):Может подсобите ?
Чем смогу, помогу. )) А у Вас какая операционная система?
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
gagarin74
Сообщения: 330
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: Резервное копирование БД и каталогов сервера (для Linux)

Сообщение gagarin74 » Пн апр 27, 2015 10:57 pm

система стоит на малине из образа с данного сайта.
что то ни фига не бекапит базы
#mysqldump -u adminDB -padminDBpass -A > /backup/all_databases.sql
использую логины по умолчанию для mysql

Login: root
Password: mysqlserver
AirKing
Сообщения: 87
Зарегистрирован: Вс фев 01, 2015 10:43 pm
Откуда: Муром
Благодарил (а): 16 раз
Поблагодарили: 7 раз

Re: Резервное копирование БД и каталогов сервера (для Linux)

Сообщение AirKing » Вт апр 28, 2015 9:16 am

gagarin74 писал(а):система стоит на малине из образа с данного сайта.
что то ни фига не бекапит базы
#mysqldump -u adminDB -padminDBpass -A > /backup/all_databases.sql
использую логины по умолчанию для mysql

Login: root
Password: mysqlserver
Ну тогда команда должна быть:
mysqldump -u root -p mysqlserver -A > /backup/all_databases.sql
Получи Cashback до 18% с покупок
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Резервное копирование БД и каталогов сервера (для Linux)

Сообщение skysilver » Вт апр 28, 2015 9:17 am

Для бэкапа баз MySQL я использую такую команду:

Код: Выделить всё

mysqldump --user=логин --password=пароль --no-create-db --add-drop-table -A > /backups/all_db.sql
Работает, как часы, и от root, и от www-data.
За это сообщение автора skysilver поблагодарил:
mirsum (Ср авг 19, 2015 4:07 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Резервное копирование БД и каталогов сервера (для Linux)

Сообщение skysilver » Вт апр 28, 2015 1:28 pm

Если неохота заморачиваться со сценарием, облаком и ротацией, то могу предложить простой shell-скрипт для cron.
Изначально я им и пользовался. Вот код:
СпойлерПоказать

Код: Выделить всё

#!/bin/sh
# System + MySQL backup script
# Full backup only
# Copyright (c) 2015 Agafonov Dmitri aka skysilver
# ---------------------------------------------------------------------

### Каталоги, которые бэкапим ###
DIRS="/etc /var/lib/mysql /var/www"
### Каталог, куда сохраняем бэкапы###
BACKUP=/home/skysilver/backup

NOW=$(date +"%Y-%m-%d")

### Настройки доступа MySQL ###
# Логин
MUSER="root"
# Пароль
MPASS="mymegapassword"

MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"

### Архивируем каталоги ###
[ ! -d $BACKUP/$NOW ] && mkdir -p $BACKUP/$NOW || :
FILE="server-full-$NOW.tar.gz"
#c — создать архив,
#v — выводить информацию о процессе,
#z — использовать сжатие gzip,
#p — сохраняем данные о владельцах и правах доступа,
#f — пишем архив в файл
tar -cvzpf $BACKUP/$NOW/$FILE $DIRS

### Архивируем базы данных ###
FILE=$BACKUP/$NOW/mysql-all-$NOW.gz
$MYSQLDUMP -v --user=$MUSER --password=$MPASS --no-create-db --add-drop-table -A | $GZIP -9 > $FILE

### Выставляем владельца каталога и всех вложений (опционально)
# (у меня каталог с архивами расшарен по SMB, поэтому даю права на доступ нужному пользователю)
chown -R skysilver:skysilver $BACKUP
chmod -R 777 $BACKUP
В скрипте нужно изменить логин, пароль, путь к каталогу, куда складывать бэкапы. Файл скрипта скопировать в /etc/cron.daily и дать права на запуск. Выполняться будет в 6-25 утра.
backupsrv.zip
(1015 байт) 305 скачиваний
За это сообщение автора skysilver поблагодарил:
mirsum (Вт июн 02, 2015 10:44 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
gagarin74
Сообщения: 330
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: Резервное копирование БД и каталогов сервера (для Linux)

Сообщение gagarin74 » Вт апр 28, 2015 3:20 pm

Не моя философия не позволяет что то в крон заносить :) Да и к человеческому интерфейсу приучен.
Если кому интересно :
Создаем скриптик:

Код: Выделить всё

mkdir /media/nas/$(date +%d.%m)
mysqldump -u root -p mysqlserver -A > /media/nas/$(date +%d.%m)/all_databases.sql
tar czf /media/nas/$(date +%d.%m)/$(date +%d.%m.%y.%H:%M_var_www).tar /var/www
tar czf /media/nas/$(date +%d.%m)/$(date +%d.%m.%y.%H:%M_var_lib_mysql).tar /var/lib/mysql
tar czf /media/nas/$(date +%d.%m)/$(date +%d.%m.%y.%H:%M_etc).tar /etc
tar czf /media/nas/$(date +%d.%m)/$(date +%d.%m.%y.%H:%M_var_log).tar /var/log
И соответственно привязываем его запуск к переменным.
сам сценарий вызывается из минутнного цикла

Код: Выделить всё

if(gg("backup.backup ")=="1") {
 if(timeIs(gg("timebackup.timebackup"))){
  say("Вкожу в бэкап");
  runScript('backup');
 }
}
ну и сам скрипт запуска исполняющего файла

Код: Выделить всё

say("Начинаю делать бэкапчик бэкап");
shell_exec("cd /var/www && ./backup.sh");
say("Бэкапчик сделан успешно ");

можно ещё кучу всего привязать и украсить -но пока успокоимся.
Спасибо всем за консультации.
Вложения
ba.jpg
ba.jpg (77.49 КБ) 11887 просмотров
Последний раз редактировалось gagarin74 Вт апр 28, 2015 4:00 pm, всего редактировалось 1 раз.
За это сообщение автора gagarin74 поблагодарили (всего 3):
Amarok (Пт май 15, 2015 8:04 am) • mirsum (Вт июн 02, 2015 10:45 pm) • kos (Ср фев 10, 2016 10:58 am)
Рейтинг: 3.49%
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Резервное копирование БД и каталогов сервера (для Linux)

Сообщение skysilver » Вт апр 28, 2015 3:56 pm

gagarin74 писал(а):Спасибо всем за консультации.
Пожалуйста. Но адрес своих сервисов не палите и доступ ограничивайте. :)
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
gagarin74
Сообщения: 330
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: Резервное копирование БД и каталогов сервера (для Linux)

Сообщение gagarin74 » Вт апр 28, 2015 3:58 pm

skysilver писал(а):
gagarin74 писал(а):Спасибо всем за консультации.
Пожалуйста. Но адрес своих сервисов не палите и доступ ограничивайте. :)
Это тестовая страница :) хотя замечание очень актуальное.
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Резервное копирование БД и каталогов сервера (для Linux)

Сообщение Amarok » Чт май 14, 2015 11:31 am

gagarin74 писал(а):Если кому интересно :
Создаем скриптик:
<...>
сам сценарий вызывается из минутнного цикла
<...>
ну и сам скрипт запуска исполняющего файла
А как потом восстанавливать?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Резервное копирование БД и каталогов сервера (для Linux)

Сообщение skysilver » Чт май 14, 2015 4:48 pm

Из архива www, распаковать файлы в /var/www (у меня там MajorDoMo находится). А дамп базы данных импортировать через phpmyadmin. Каталог /etc в линуксе содержит все конфиги ОС и софта, т.е. пригодится при переустановке ОС. Каталог /var/lib/mysql в принципе можно не бэкапить, если есть дамп базы данных.
За это сообщение автора skysilver поблагодарили (всего 2):
slgeo (Сб янв 30, 2016 1:43 pm) • directman66 (Чт апр 13, 2017 3:33 pm)
Рейтинг: 2.33%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ответить