Я ищу стратегию резервного копирования файлов своего веб-приложения.
Я размещаю свое (laravel) приложение на сервере ubuntu (18.04) в облаке, и в настоящее время у меня есть около 80 ГБ хранилища, для которого необходимо создать резервную копию (это быстро растет). Самые большие файлы имеют размер около 30 МБ, остальные - небольшие файлы jpg / txt / pdf.
Я хочу делать как минимум 2 раза в день полную резервную копию каталога хранилища и хранить ее в виде zip-файла на локальном сервере. У меня на это две причины: независимость от облачных провайдеров и архивирование.
Моя первая стратегия резервного копирования заключалась в том, чтобы заархивировать все содержимое папки хранилища и синхронизировать zip, это идет хорошо до тех пор, пока пара гигабайт не будет полностью зависеть от использования процессора.
Мой второй подход - с помощью rsync, но я не могу отслеживать, когда файл удаляется / добавляется.
Я ищу хорошую стратегию резервного копирования, при которой предпочтительнее создавать zip-архивы до или после резервного копирования и хранить их, чтобы мы могли просматривать и проверять данные в прошлом.
Как ни странно, я не нашел ничего подходящего, надеюсь, что кто-нибудь может мне помочь.
Хммм раньше не думал об этом. Собираюсь разобраться в этом! И речь идет не о файлах приложения (они уже есть в git), а о загруженных / сгенерированных файлах, например: эскизах, сметах, счетах и т. Д.
Наверное, не лучший вариант, если данные - это данные пользователя, чтобы хранить их в git. Если вы работаете за пределами Европы, Gdpr усложняет задачу, если данные, для которых выполняется резервное копирование, могут быть подключены к пользователю. Трудно удалить что-то из git.






У Spatie есть пакет для резервного копирования Laravel, который можно запланировать в планировщике заданий laravel. Он будет создавать zip-архивы со всем проектом, включая каталоги для хранения.
https://github.com/spatie/laravel-backup
Создание zip-архива приводит к зависанию сервера из-за использования процессора.
почему бы не использовать управление исходным кодом (git, mecurial, svn) для резервного копирования файлов приложения