Я бекаплю скорее не сайты, точнее не только сайты. Основные инструменты, которые я использую, это rsnapshot и restic Оба позволяют делать инкрементальные бекапы, что позволяет разумно использовать место на диске и сеть. И работать на уровне отдельных файлов, без разархивирования и.т.п., что очень удобно, если надо восстановить отдельный файл, например. А restic, к тому же, позволяет монтировать бекапы как файловую систему, что тоже очень удобно.
Для бекапа различных баз данных вызываются внешние скрипты, создающие их дампы или снимки.
Код у всех норальных людей в гите. Базу бэкапить можно десятками способов, каждый из которых по-своему хорош. А вот с папкой files вопрос куда более интересный. Кто как бэкапит картинки? Есть предложение, что для этого оптимален s3, но сам пока им не пользовался.
Начать стоит с того, что бекапить нужно куда-нибудь на удалённый сервер, лучше в другом ДЦ. В случае мелкого сайта, это может быть какое-нибудь облачное файлохранилище, даже бесплатное, или домашний NAS...
Даже если это какой-то мелкий сайтик, система хранения на которой он лежит может помереть, или хостер, или в ДЦ что-то случиться.
А продолжить тем, что кроме сайта, возможно стоит бекапить почту, например, настройки серверного ПО, и.т.п, раз мы о сервере.
Комментарии
Я бекаплю скорее не сайты, точнее не только сайты. Основные инструменты, которые я использую, это rsnapshot и restic Оба позволяют делать инкрементальные бекапы, что позволяет разумно использовать место на диске и сеть. И работать на уровне отдельных файлов, без разархивирования и.т.п., что очень удобно, если надо восстановить отдельный файл, например. А restic, к тому же, позволяет монтировать бекапы как файловую систему, что тоже очень удобно.
Для бекапа различных баз данных вызываются внешние скрипты, создающие их дампы или снимки.
Код у всех норальных людей в гите. Базу бэкапить можно десятками способов, каждый из которых по-своему хорош. А вот с папкой files вопрос куда более интересный. Кто как бэкапит картинки? Есть предложение, что для этого оптимален s3, но сам пока им не пользовался.
я бэкаплю сайт скриптами но хочу научиться делать снапшоты на файловой системе zfs. эта файловая система новый тренд. появилась на убунту 19.10 .
Ей сто лет в обед и появилась она в Solaris. Потом была портирована во FreeBSD, и затем в Линукс, и даже это было довольно давно.
Ну и не то, чтобы это так уж тренд, к тому же, она не такая уж быстрая, и очень охоча до памяти.
Открыл для себя программу для создания шифрованных инкрементальных и удаленных бэкапов duplicity .
Создание бэкапа
duplicity --no-encryption /var/www/drupal8 file:///home/yuraxu1804/backupssd
Просмотр бэкапа
duplicity collection-status file:///home/yuraxu1804/backupssd
Восстановление из бэкапа
duplicity --no-encryption file:///home/yuraxu1804/backupssd /var/www/drupal8
Ссылки
https://prudnitskiy.pro/2017/09/30/duplicity/
нашел интересную статью про бэкап на хакер ру. но она платная.
Есть отличная статья с обзором методик и софта для бекапа на Хабре: https://habr.com/ru/company/southbridge/blog/449282/ точно намного более толковое, чем то, что могут написать на хакер ру.
апчем разговор?
Если вы не Цукерберг и ваш сайт умещается на одном сервере - чего там бэкапить?
BACKUP_DIR="./backup/$(date +%F--%H-%M-%S)"
mkdir $BACKUP_DIR
drush sql:dump |gzip > $BACKUP_DIR/db.sql
tar -czf $BACKUP_DIR/dump.tar.gz --exclude=./web/sites/default $(cat ./scripts/files.txt)
у меня этот скрипт лежит в папке scripts в корне проекта.
в файле ./scripts/files.txt список архивируемых файлов-папок:
./config
./web
так же в корне лежит папка backup, в которую кладутся дампы.
скрипт запускать из корня проекта(в нем все пути от корня)
в итоге в папку ./backup/[ТЕКУЩАЯ ДАТА-ВРЕМЯ]
ложатся архивы БД и файлов.
можно конечно еще чего-то на него навесить, но тупо сделать бэкап вполне достаточно.
ЗЫ.. Кстати, а кто-нибудь в курсе, зачем из drush последних версий убрали команды-ключи ard и arb ?
ЗЫЫ. Скрипт без drush не работает.
я бэкаплю каждый день по крону этим скриптом:
cd /var/www/drupal8/web && ../vendor/bin/drush sset system.maintenance_mode 1
if ../vendor/bin/drush sql-dump --result-file=../baza_drup8.sql
then echo "Backup of sql successful"
else echo "Backup of sql failed"
fi
duplicity --no-encryption /var/www/drupal8 file:///home/username/backupssd
cd /var/www/drupal8/web && ../vendor/bin/drush sset system.maintenance_mode 0
Начать стоит с того, что бекапить нужно куда-нибудь на удалённый сервер, лучше в другом ДЦ. В случае мелкого сайта, это может быть какое-нибудь облачное файлохранилище, даже бесплатное, или домашний NAS...
Даже если это какой-то мелкий сайтик, система хранения на которой он лежит может помереть, или хостер, или в ДЦ что-то случиться.
А продолжить тем, что кроме сайта, возможно стоит бекапить почту, например, настройки серверного ПО, и.т.п, раз мы о сервере.