Django로 작업한 프로젝트 백업받기
먼저 패키지 백업 받고 zip으로 압축합니다.
pip freeze > requirements.txt
zip -r fav_pure_code_backup.zip fav/ \
-x "fav/media/*" \
-x "fav/static/admin/*" \
-x "fav/staticfiles/*" \
-x "fav/fenv/*" \
-x "fav/.git/*" \
-x "fav/db.sqlite3"

복원하기
unzip fav_pure_code_backup.zip
cd fav/
# 1. fenv라는 이름으로 새 가상환경 생성
python3 -m venv fenv
# 2. 가상환경 활성화
source fenv/bin/activate
# 3. 백업해 두었던 패키지 목록 재설치
pip install --upgrade pip
pip install -r requirements.txt
백업에서 staticfiles와 static/admin을 제외했기 때문에,
Django 명령어로 배포용 스태틱 파일들을 다시 한 자리에 모아주어야 합니다.
python manage.py collectstatic
SQLite를 썼던 경우: 압축에서 제외했던 db.sqlite3 파일을 원래 위치(fav/ 폴더 루트)로 복사해 넣어주거나,
새로 시작하는 경우 python manage.py migrate를 실행해 빈 DB를 생성합니다.
타 패키지 백업
1. Celery 서비스 파일 등록하기
새로운 서버 환경(또는 초기화된 서버)에 Celery 설정을 다시 심어줍니다.
Bash
# systemd 서비스 파일 편집기를 엽니다.
sudo nano /etc/systemd/system/celery.service
편집기가 열리면 올려주신 설정을 그대로 붙여넣고 저장합니다 (Ctrl + O 후 엔터, Ctrl + X로 빠져나오기).
Ini, TOML
[Unit]
Description=Celery Worker for Fencing Hub
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/fav
# 가상환경 내부의 celery 명령어를 직접 호출합니다.
ExecStart=/home/ubuntu/fav/fenv/bin/celery -A config worker --loglevel=info -E
Restart=always
[Install]
WantedBy=multi-user.target
(💡 맨 아래에 [Install] 섹션을 추가해 주어야 서버가 부팅될 때 Celery가 자동으로 같이 켜집니다.)
2. 서비스 적용 및 재가동
파일을 저장했다면 리눅스 시스템에 이 서비스 파일을 인식시키고 활성화해야 합니다.
Bash
# 1. 새로운 서비스 파일이 추가되었음을 시스템에 알립니다 (새로고침)
sudo systemctl daemon-reload
# 2. 서버가 재부팅되어도 Celery 워커가 자동 실행되도록 설정합니다.
sudo systemctl enable celery.service
# 3. 지금 바로 Celery 워커를 가동합니다.
sudo systemctl start celery.service
3. 정상 작동 확인 (필수)
워커가 에러 없이 잘 돌고 있는지 아래 명령어로 상태를 확인합니다.
Bash
sudo systemctl status celery.service
출력 결과에 녹색 불로 active (running)가 떠 있다면 완벽하게 복구된 것입니다. 만약 에러가 난다면 Django 가상환경(fenv) 내에 celery 패키지가 설치되지 않았거나, WorkingDirectory 경로에 프로젝트가 정확히 위치하지 않은 것이 원인일 수 있으니 경로를 다시 확인해 보시면 됩니다.
전체 패키지 실행
준비가 다 됬다면 아래처럼 설정하고 실행합니다.
#nginx 설정
sudo nginx -t
sudo nano /etc/nginx/sites-enabled/default
sudo service nginx restart
source fenv/bin/activate
#테스트용
python manage.py runserver 0.0.0.0:8180
#실제 실행
gunicorn --bind 127.0.0.1:8180 config.wsgi:application --daemon
sudo pkill -9 gunicorn

'Programming > Python' 카테고리의 다른 글
| 파이썬 이미지 인식 연습 (0) | 2026.01.01 |
|---|---|
| 빅데이터 분석기사 실기 3유형 (0) | 2025.06.11 |
| 빅데이터 분석기사 예제문제 2유형 (0) | 2025.06.11 |
| 빅데이터 분석기사 6월 실기 1유형 (0) | 2025.06.11 |
| 파이썬 pyinstaller 용량 줄이기 (0) | 2025.03.05 |