У меня есть VPS с Wordpress (включая хранилище и базу данных на одном компьютере).
Теперь я хочу делать ежедневные резервные копии во внешний сервис (AWS S3): проблема в том, что сначала мне нужно сгенерировать tar хранилища и дамп базы данных, которые временно хранятся в локальной файловой системе. Обычно половина дискового пространства должна оставаться свободной, чтобы всегда можно было выполнять эту важную операцию.
Как правило, резервное копирование не должно завершаться ошибкой из-за нехватки свободного места на диске.
Как я могу этого добиться?
Как я могу зарезервировать место (несколько ГБ) для папки (например, backup
папка)?
Или, в качестве альтернативы, могу ли я зарезервировать место для пользователя (например, backupdaemon
пользователь)?
Другие решения?
Не зная своего провайдера VPS, трудно понять, будет ли это разрешено. Один «простой» метод - просто создать отдельную файловую систему. IE у вас есть /var/backup_tmp
или что-то с достаточным пространством в этой файловой системе для ваших резервных копий.
Другой метод, предполагающий, что ваше программное обеспечение не работает от имени пользователя root. Настройте котировки файловой системы, чтобы ваше программное обеспечение не могло использовать больше определенного объема памяти.
Какое бы решение вы ни выбрали, подумайте об установке чего-то вроде monit на VPS и настройте его для отправки предупреждений, когда у вас заканчивается хранилище. Также убедитесь, что программа резервного копирования уведомляет вас о сбое.
Конечно, возможно, даже лучше. Используйте инструмент резервного копирования, например борг это на самом деле не требует промежуточного хранилища. Не уверен, что он может выполнять резервное копирование на S3, но есть облачные провайдеры, с которыми вы можете использовать borg. 1 [2]
Сначала вам нужно рассчитать, сколько места вам нужно для tar и gzip необходимых файлов и db.
Вы можете выполнять одну задачу за раз. Пример: сначала сделайте резервную копию хранилища tar / gzip, перенесите его на AWS S3, а затем удалите файл резервной копии с диска, для этого потребуется меньше места, как только вы закончите с резервным копированием хранилища, вы можете сделать то же самое процесс с резервной копией БД
Также, если возможно, вы можете расширить свой диск или добавить дополнительный диск для резервного копирования, вы можете написать скрипт, который будет выполнять все эти задачи и добавить его в cron, вы также можете добавить оповещения по электронной почте, чтобы вы могли получать обновления успешных и неудачных резервных копий, также вы можете использовать инструменты мониторинга, такие как nagios, которые могут отправлять вам предупреждения о дисковом пространстве на сервере
Кроме того, если вы делаете ежедневное резервное копирование на AWS S3, я бы рекомендовал установить жизненный цикл для вашей корзины s3, чтобы после определенного периода ваши данные были перемещены в AWS Glacier, это сэкономит немного долларов