Comments 39
Я бы только значение date '+%Y-%m-%d' запрашивал один раз держал бы в переменной. А то будут странные косяки если скрипт начнет выполняться за несколько секунд до полуночи.
+3
Согласен, сейчас переделаю.
0
Знаете, а я на следующей неделе опубликую 2 скрипта.
один на Bash — бэкапит БД на удаленны фтп, бэкапит директории с сайтами.
второй на php — удаляет с фтп устаревшие бэкапы.
ключевой момент — бэкапы хранятся не на локальном сервере.
поднять vps под убунтой могу за 30 минут. для себя подготовил мини инструкцию что и где нужно прописать и что установить =)
один на Bash — бэкапит БД на удаленны фтп, бэкапит директории с сайтами.
второй на php — удаляет с фтп устаревшие бэкапы.
ключевой момент — бэкапы хранятся не на локальном сервере.
поднять vps под убунтой могу за 30 минут. для себя подготовил мини инструкцию что и где нужно прописать и что установить =)
+1
Я что то подобное писал, только не по ftp, а mount через ssh. Работало нормально, но ведь мог не ответить удаленный сервер.
Так как у меня сайты не супер-пупер важности — я резервирую все на локальную машину, а оттуда в ручном режиме перекидываю на Dropbox.
На досуге собираюсь покурить маны и сделать копирование в Dropbox сразу с хостинга.
Так как у меня сайты не супер-пупер важности — я резервирую все на локальную машину, а оттуда в ручном режиме перекидываю на Dropbox.
На досуге собираюсь покурить маны и сделать копирование в Dropbox сразу с хостинга.
0
у меня есть ftp отдельный, поэтому другие варианты не рассматривал.
за месяц ежедневных бэкапов набирается на 15-20 гигов.
за месяц ежедневных бэкапов набирается на 15-20 гигов.
0
Если ftp в защищеной сети, то проблем нет, конечно. Но если это публичный интернет, то есть смысл посмотреть в сторону scp (копирование через ssh).
scp не только лучше защищено, но даже будет немного проще скриптовать. С scp/ssh можно делать интересные штуки, как например, компрессия-архивация на удаленном хосте если локальное процессорное время ценнее трафика. И прочее в таком стиле.
scp не только лучше защищено, но даже будет немного проще скриптовать. С scp/ssh можно делать интересные штуки, как например, компрессия-архивация на удаленном хосте если локальное процессорное время ценнее трафика. И прочее в таком стиле.
0
Я видимо не выдержу и опубликую решение на duplicity… разнообразие велосипедов поражает.
0
Я бы посоветовал добавить заливку бэкапа на amazon s3
s3cmd put $DATE-files-$PREFIX.tar.bz2 s3://backup/
Настройка программы тоже очень простая habrahabr.ru/blogs/personal/92419/
s3cmd put $DATE-files-$PREFIX.tar.bz2 s3://backup/
Настройка программы тоже очень простая habrahabr.ru/blogs/personal/92419/
+1
Можно еще бекапить бд сразу в архив.
mysqldump -uuser -ppass dbase | gzip -cf9 > dbase_date.sql.gz
0
А потом опять зажимать в другой архив? Или таскать папкой с архивами?
Мне кажется удобнее архив сразу директории в один файл.
Мне кажется удобнее архив сразу директории в один файл.
0
Не понимаю, вы имеете ввиду упаковывать дамп и файлы в один архив?
0
Все базы дампятся в файлы. Одна БД — один файл. Все это лежит во временной директории. Потом она сжимается (соответственно, сжимаются сразу все дампы) в один файл.
Отдельно сжимаются нужные файлы (веб сайты, настройки)
Получается в итоге скрипта 2 архива — в одном все файлы, в другом все базы данных. Удобно хранить и копировать.
Отдельно сжимаются нужные файлы (веб сайты, настройки)
Получается в итоге скрипта 2 архива — в одном все файлы, в другом все базы данных. Удобно хранить и копировать.
0
Да, конечно такой подход тоже может быть.
Я наоборот для каждого проекта завожу отдельную папку, в нее кладу папку с дампами бд и папку с архивами статики.
Каждый проект в своей папке, потому как не известно кому будет передан проект в дальнейшем, куда переедет проект в дальнейшем, будет ли он существовать вообще.
Я наоборот для каждого проекта завожу отдельную папку, в нее кладу папку с дампами бд и папку с архивами статики.
Каждый проект в своей папке, потому как не известно кому будет передан проект в дальнейшем, куда переедет проект в дальнейшем, будет ли он существовать вообще.
0
Бекап в архив — позапрошлый век. Нужно делать инкрементальные бекапы с хардлинками на неизменившиеся файлы.
-1
добавьте
echo "Backup postgresql bases"
if [ -x `which pg_dumpall`]; then
su - postgres -c "pg_dumpall" >......
fi
0
Используйте вместо mysqldump — innobackupex/xtrabackup
0
Что это? В репозитории Ubuntu нет такого.
Мой скрипт и на shared хостинге работать будет, ему права root не нужны.
Tar и mysqldump есть везде.
Мой скрипт и на shared хостинге работать будет, ему права root не нужны.
Tar и mysqldump есть везде.
0
конечно это не для шаред, но и в заголовке указано — VPS
www.percona.com/docs/wiki/repositories:apt
www.percona.com/docs/wiki/repositories:apt
0
А что, если vps — то надо ставить на него все подряд?
Расскажите, какие выгоды дает innobackupex/xtrabackup по сравнению с mysqldump?
Расскажите, какие выгоды дает innobackupex/xtrabackup по сравнению с mysqldump?
0
скорость бекапа + ниже нагрузка на систему + быстрое восстановление.
вкратце: эти скрипты не делают дамп запросами в базу и не восстанавливают таким же образом.
для деталей — гугл в помощь.
вкратце: эти скрипты не делают дамп запросами в базу и не восстанавливают таким же образом.
для деталей — гугл в помощь.
0
Мда… у бывших пользователей клодо мысли сходятся… Как раз собралась написать похожую штуку, только с rsync'ом на домашний комп и архивированием уже «дома» + перелив с домашнего компа на амазон через s3cmd. И тоже наладила все это безобразие «в связи с событиями у Clodo» :-)
На клодовской машинке бэкапы делались скриптами халявной панельки, у селектела пришлось все настроить ручками :-)
На клодовской машинке бэкапы делались скриптами халявной панельки, у селектела пришлось все настроить ручками :-)
0
Селектел мне очень пока нравится. Скорость фантастическая, глюков нет, а деньгам так же. Посмотрим, как будет дальше по времени.
Поставил на сервер dropbox и бэкаплю сразу туда.
Поставил на сервер dropbox и бэкаплю сразу туда.
0
rsnapshot чем не угодил? У меня бекапит и базы и файлы…
0
0
Если есть простой, прозрачный и удобный инструмент, который ежедневно просто делает свою работу на нескольких серверах — нафига его менять?
Кстати, меня смущает там 41 открытый вопрос.
Уверены, что нужно использовать этого монстра, вместо простого скрипта в 30 строк?
Кстати, меня смущает там 41 открытый вопрос.
Уверены, что нужно использовать этого монстра, вместо простого скрипта в 30 строк?
0
41 открытый вопрос — это лишь показатель популярности проекта. Software fails.
Недостаток простых скриптов в том, что рано или поздно их приходится дописывать / делать костыли. К примеру, если захотите бэкапится на S3 вместо диска, либо захотите делать бэкапы инкрементально. Я раньше тоже пользовался самописным скриптиком вроде вашего, но понял, что использовать его для сложных проектов стало неудобно из-за того, что в некоторых местах бэкапить нужно не только файлы/БД.
Недостаток простых скриптов в том, что рано или поздно их приходится дописывать / делать костыли. К примеру, если захотите бэкапится на S3 вместо диска, либо захотите делать бэкапы инкрементально. Я раньше тоже пользовался самописным скриптиком вроде вашего, но понял, что использовать его для сложных проектов стало неудобно из-за того, что в некоторых местах бэкапить нужно не только файлы/БД.
0
К примеру, если захотите бэкапится на S3 вместо диска, либо захотите делать бэкапы инкрементально
Лично мне нравится делать полные копии. Для версионности своих разработок использую Github. Для S3 есть s3cmd — простая консольная утилита.
Вообще, учитывая как щас раздают облачные гигабайты нахаляву — бэкапиться можно в 3 места сразу, и мне это в любом случае удобнее делать маленьким скриптиком.
что в некоторых местах бэкапить нужно не только файлы/БД
Прошу прощения, а что можно еще бэкапить?
0
Это понятно, что для всего есть своя консольная утилита. Разница в том, что в вашем скрипте эту консольную утилиту нужно правильно использовать, да ещё и тщательно это простестировать. А если в один прекрасный день сторонний сервис, на который заливаются ваши бэкапы откажет / истечёт срок действия сертификата / закончатся деньги в аккаунте? Гем backup умеет отправлять письма на почту со статусом последнего бэкапа.
Кроме того, в вашем скрипте нет обработки кодов возврата. А ведь каждая команда в цепочке может выполнится неуспешно (ошибка доступа, закончилось место на диске, MySQL timeout).
Я не совсем правильно выразился по поводу возможных предметов бэкапа. Бэкапятся, в любом случае, только файлы. Более или менее нагруженный проект это не только LAMP. У нас в проекте, например, есть Redis. Он периодически сохраняет свою базу в файл. Перед тем как копировать эту базу для бэкапа, нужно отправить специальную команду для того, чтобы Redis записал информацию на диск. Понятно, что это тоже можно реализовать с помощью bash-скрипта, но зачем изрбретать велосипед, если это уже сделали правильно за тебя и нужно лишь указать путь к папке Redis в конфиге? Чем сложнее проект, тем больше велосипедов придётся изобретать.
Кроме того, в вашем скрипте нет обработки кодов возврата. А ведь каждая команда в цепочке может выполнится неуспешно (ошибка доступа, закончилось место на диске, MySQL timeout).
Я не совсем правильно выразился по поводу возможных предметов бэкапа. Бэкапятся, в любом случае, только файлы. Более или менее нагруженный проект это не только LAMP. У нас в проекте, например, есть Redis. Он периодически сохраняет свою базу в файл. Перед тем как копировать эту базу для бэкапа, нужно отправить специальную команду для того, чтобы Redis записал информацию на диск. Понятно, что это тоже можно реализовать с помощью bash-скрипта, но зачем изрбретать велосипед, если это уже сделали правильно за тебя и нужно лишь указать путь к папке Redis в конфиге? Чем сложнее проект, тем больше велосипедов придётся изобретать.
0
Ничего не понимаю в серверах, бекапах и bash, но это единственный скрипт, который работает так, как нужно — с бекапом всех баз, с указанием исключений, с указанием целевых папок и удалением старых бекапов. Добавил загрузку в Google Cloud Storage и повесил на cron. На все настройки 15 минут, с учетом того, что я в этом полный ноль.
0
Only those users with full accounts are able to leave comments. Log in, please.
Скрипт резервного копирования vps серверов