Я пытаюсь написать скрипт с использованием cron, который мог бы автоматически восстанавливать мою резервную копию из S3 раз в неделю.
Таким образом, он будет запускаться каждое воскресенье, вместо того чтобы я заходил в интерфейс и запускал восстановление вручную. (Восстановление нашего сайта занимает несколько часов…)
Как проверить, что резервные копии действительно в порядке? Вы знали, что большинство людей на самом деле не проводят тесты восстановления?
Если бы я это делал, я бы запустил изолированный контейнер Docker для восстановления резервной копии. Этот контейнер Docker был бы уничтожен после успешного восстановления. Этому новому контейнеру не разрешалось бы общаться с внешним миром (например, не отправлять никакие письма, не загружать новый контент и т. д.).
Восстановление резервной копии может быть простым выполнением команды docker exec:
Но для проверки сайта вам понадобится тот же образ контейнера… Так что, возможно, после восстановления стоит пересобрать образ и затем выполнить проверку?
docker exec app bash -c '$(discourse restore | grep discourse|head -1)'
восстановит последнюю резервную копию. Затем вы сможете настроить cron для запуска этой команды в нужное время.