# Is there any way to restore your site from backup in the terminal?

**URL:** https://meta.discourse.org/t/is-there-any-way-to-restore-your-site-from-backup-in-the-terminal/42377
**Category:** Support
**Created:** [4월 11, 2016, 6:31오전 UTC](https://meta.discourse.org/t/is-there-any-way-to-restore-your-site-from-backup-in-the-terminal/42377 "2016-04-11T06:31:25Z")
**Posts on this page:** 1
**Showing post:** 17

<div class="post-metadata">

### Author: ![Eric\_Keller](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eric_keller/32/517693_2.png) [@Eric\_Keller](https://meta.discourse.org/u/Eric_Keller)
#### Post date: [8월 15, 2025, 1:39오후 UTC](https://meta.discourse.org/t/is-there-any-way-to-restore-your-site-from-backup-in-the-terminal/42377/17 "2025-08-15T13:39:29Z")

</div>

prod를 dev와 test로 복원하는 데 사용하는 작동하는 스크립트입니다:

```bash
#!/bin/sh
set +x
set -e
# 이 스크립트는 최신 프로덕션 백업을 test/dev 환경으로 복원합니다
CONTAINER_NAME=app-test
LATEST_BACKUP=$(mc ls s3/backup-prod/default | tail -n 1 | cut -d ' ' -f 5)
mc cp s3/backup-prod/default/${LATEST_BACKUP} /tmp
# /var/www/discourse/public/backups/default/ 디렉터리가 올바른 소유권으로 존재하는지 확인합니다
docker exec -i ${CONTAINER_NAME} sh -c "mkdir -p /var/www/discourse/public/backups/default/ && chown -R discourse:www-data /var/www/discourse/public/backups/default/"
cat /tmp/${LATEST_BACKUP} | docker exec -i ${CONTAINER_NAME} sh -c "cat - > /var/www/discourse/public/backups/default/${LATEST_BACKUP}"
docker exec -i ${CONTAINER_NAME} sh -x << EOF
discourse enable_restore
rails runner "SiteSetting.set('backup_location', 'local')"
discourse restore ${LATEST_BACKUP}
discourse disable_restore
rm -f /var/www/discourse/public/backups/default/${LATEST_BACKUP}
EOF
# 컨테이너 재빌드
cd /var/lib/discourse/discourse_docker
stdbuf -oL -eL ./launcher rebuild ${CONTAINER_NAME} 2>&1 | sed 's/DISCOURSE_google_oauth2_client_secret=[^]*/DISCOURSE_google_oauth2_client_secret= ***REDACTED*** /g'
cd -
rm -f /tmp/${LATEST_BACKUP}

```

`rails runner "SiteSetting.set('backup_location', 'local')"` 명령이 누락되어 백업 타르볼(tarball)로부터의 복원이 불가능했습니다.

launcher 스크립트의 출력은 특히 가시적인 CI/CD 작업에서 수행될 때 출력을 통해 시크릿을 노출시킬 수 있으므로 마스킹 처리해야 했습니다.

---

_[View the full topic](https://meta.discourse.org/t/is-there-any-way-to-restore-your-site-from-backup-in-the-terminal/42377)._
