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

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

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

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

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

Сообщение skysilver » Пн апр 10, 2017 9:39 pm

directman66 писал(а):Но к сожалению сломал sudoers. Будьте внимательны при редактировании этого файла.
Файл настроек /etc/sudoers всегда следует редактировать с помощью команды visudo. visudo блокирует файл sudoers, сохраняет изменения во временный файл и проверяет, что файл грамматически корректен, перед тем как скопировать его в /etc/sudoers.
Используйте visudo и будет счастье. ))
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Вс май 21, 2017 1:52 pm

Не буду плодить темы, может кто-нибудь подсказать, каким образом можно скопировать базу данных db_terminal например в db_terminal_%sysdate% как это делает phpmyadmin??
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

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

Сообщение skysilver » Вт май 23, 2017 2:40 pm

directman66 писал(а):Не буду плодить темы, может кто-нибудь подсказать, каким образом можно скопировать базу данных db_terminal например в db_terminal_%sysdate% как это делает phpmyadmin??
Конкретно в phpmyadmin при экспорте базы в sql-файл вызывается скрипт export.php методом POST (при нажатии кнопки ОК в веб-интерфейсе phpmyadmin), которому передаются нужные параметры (имя базы, параметры экспорта, токен пользователя и т.п.). Чтобы понять, как именно там происходит экспорт, надо вникать в исходники. Но, имхо, это уже перебор. Достаточно воспользоваться консольной утилитой mysqldump.

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

mysqldump --user=логин --password=пароль --no-create-db --add-drop-table имя_базы > /путь/имя_файла_копии_базы.sql
Пример вызова этой утилиты из сценариев или методов MJD можно увидеть в первом посте темы.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Sat
Сообщения: 25
Зарегистрирован: Пт авг 07, 2015 5:08 pm
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение Sat » Вт июн 20, 2017 9:26 pm

Ночью был разбужен push-уведомлением о том, что заканчивается RAM на сервере (raspberry pi 2).
Сейчас поразбиравшись обнаружил следующею штуку.
Ночью с понедельника на вторники делается бекап базы данных.
Судя по графикам, каждый раз при бекапировании утекает 15 МБ ОЗУ (месяц назад утекало 10, с каждым разом величина утекания увеличивается на 1МБ примерно).

скрипт, который выполняется МД:
СпойлерПоказать
say("Запуск создания резервной копии БД");
shell_exec("sudo /var/www/sat-scripts/CreateBackupDB.sh");
say("Завершение создания резервной копии БД");
Содержимое вызываемого файла
mysqldump --user=xxx --password=yyy --all-databases > /var/backups/backup_auto/db/$(date +%d.%m.%Y_%H.%M).sql

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

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

Сообщение skysilver » Вт июн 20, 2017 10:05 pm

Вряд ли тут можно что-то поделать. Это не проблема веб-сервера и majordomo, а утилиты mysqldump. Видимо не освобождает после своей работы память.

Скорее всего, это обычное кеширование. Если так, то поводов для беспокойства нет. При необходимости ОС сама очистит кеш и выделить нужный кусок рам под требуемые задачи.

У меня 785 дней аптайма и за свободной рам вообще не слежу. free -m показывает, что свободно только 63Мб. Но при этом учитывается буферизованная и кешированная память, которую ОС в любой момент может освободить! Вот в htop наглядно видно, что используется 397Мб, а остальное это buffers 109Мб и cached 1429Мб.

Если хочется смотреть на цифры, то можно руками эти кеши сбросить. ))

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

sync; echo 3 > /proc/sys/vm/drop_caches; free -h
Я не парюсь. Система сама разрулит сколько в кеш и буфферы выделить, и сколько освободить при необходимости. Почти два года уж не ковырялся в серваке.
СпойлерПоказать
free.png
free.png (9.92 КБ) 7054 просмотра
htop.png
htop.png (14.6 КБ) 7054 просмотра
help.jpg
help.jpg (17.07 КБ) 7054 просмотра
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Sat
Сообщения: 25
Зарегистрирован: Пт авг 07, 2015 5:08 pm
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение Sat » Вт июн 20, 2017 10:08 pm

Спасибо за ответ. Понаблюдаю.
Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново
Благодарил (а): 15 раз
Поблагодарили: 46 раз

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

Сообщение dioxin » Сб июн 24, 2017 11:34 pm

А я на локальный debian сервер сразу накатил webmin, дабы упростить жизнь в будущем. И бекапами теперь занимается он. Поднял самбу и кидаю бекап на локальный виндовый комп. Все по крону, бекапы автоматом архивируются и складываются в нужные места. Еще тащу бекапы с удаленного vps, где лежит около 10 сайтов с помощью lftp. Все тоже архивируется и кидается по крону на локальный комп.
СпойлерПоказать
2017-06-24_23-30-56.jpg
2017-06-24_23-30-56.jpg (46.69 КБ) 6953 просмотра
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
Ответить