Комментарии 14
Мне кажется не очень рационально так хранить. Всякое бывает в жизни. Лучше разделять на месячные копии, недельные и суточные.
Вычитывайте, пожалуйста, статью перед публикацией, текста на полстраницы и все равно неприятно читать:
и т.д.
во общем
Не понятный метод с не ясным
и что бы не переполнять
и т.д.
А с каких пор это нормально — светить пароли от БД и FTP в кронтабе?
Прочитал статью и возникло 2 вопроса:
1. Зачем вам в начале скрипта аж три класса, которые ничего не делают?
2. Почему по FTP? Этот протокол же небезопасный! Не лучше ли использовать SFTP вместо него?
1. Зачем вам в начале скрипта аж три класса, которые ничего не делают?
2. Почему по FTP? Этот протокол же небезопасный! Не лучше ли использовать SFTP вместо него?
1. Начал учится 2 недели назад, по классическому учебнику Марк Саммерфилд «Программирование на Python 3»,
это классический подход возбуждать собственные исключения, если верить Саммерфилду ))
2. Хорошее замечание, оказывается есть pysftp, судя по документации еще и проще чем ftplib
это классический подход возбуждать собственные исключения, если верить Саммерфилду ))
2. Хорошее замечание, оказывается есть pysftp, судя по документации еще и проще чем ftplib
Backup-manager.
Бэкап чего угодно (файлы/mysql/pgsql), шифрование, инкрементные бэкапы, авторотация, логи, хеш-суммы, аплоад через/в scp, ssh-gpg, ftp, rsync, Amazon S3…
Ну а на Питоне можно что-нибудь другое потренировать, менее критичное, нежели работу с резервными копиями.
Хотя дело ваше.
Бэкап чего угодно (файлы/mysql/pgsql), шифрование, инкрементные бэкапы, авторотация, логи, хеш-суммы, аплоад через/в scp, ssh-gpg, ftp, rsync, Amazon S3…
Ну а на Питоне можно что-нибудь другое потренировать, менее критичное, нежели работу с резервными копиями.
Хотя дело ваше.
Про MySQL. Зависит от сложности и размера БД, но я бы посоветовал обратить внимание на следующее:
- В приведенном варианте восстановить БД отдельно взятого клиента так просто не получится. Лучше бекапить каждую БД отдельно.
- Если у кого-то были процедуры, то их в бекапе не окажется.
- mysqldump делает дамп в текстовом виде. Если БД большая, то это и долго, и много места занимает. Потому лучше вывод mysqldump сразу передавать в gzip, минуя промежуточный этап записи на диск.
- Можно легко поймать ситуацию когда целостность данных в дампе нарушится. Потому хорошо добавить ключ
--single-transaction
. - Посмотреть percona xtrabackup. В этом случае получится делать бекап всех/некоторых БД быстро и не мешая пользователям, и с гарантированой целостностью.
В приведенном варианте восстановить БД отдельно взятого клиента так просто не получится.
Скрипт делает бекап каждой базы отдельно.
Если у кого-то были процедуры, то их в бекапе не окажется.
Наверное Вы правы )
минуя промежуточный этап записи на диск
Тоже верно!
Потому хорошо добавить ключ --single-transaction
За ключ спасибо )
Скажите мне зачем для такого базового набора функционала Python?
Есть же bash и logrotate. Больше инструментов для этой задачи не нужно.
Есть же bash и logrotate. Больше инструментов для этой задачи не нужно.
Пару месяцев назад с коллегой реализовали похожий велосипед https://github.com/antirek/backuper ))
— бэкап для mysql, pgsql, mongodb
— для каждой бд указывается свой конфиг-файл (очень удобно — добавил/удалил)
— бэкап копируется на ftp
— отправляет уведомление на емейл
— бэкап для mysql, pgsql, mongodb
— для каждой бд указывается свой конфиг-файл (очень удобно — добавил/удалил)
— бэкап копируется на ftp
— отправляет уведомление на емейл
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Резервное копирование базы mysql и файлов на удаленный FTP — Python 3