From 812e7b85047225f618f6ce73ed986c90d4a83d9b Mon Sep 17 00:00:00 2001 From: choibk Date: Sun, 25 Jan 2026 00:03:46 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9A=B4=EC=98=81=20=EA=B0=80=EC=9D=B4?= =?UTF-8?q?=EB=93=9C=20=EA=B3=A0=EB=8F=84=ED=99=94:=20=EC=8B=9C=EB=86=80?= =?UTF-8?q?=EB=A1=9C=EC=A7=80=20=ED=99=98=EA=B2=BD=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EB=B0=B1=EC=97=85=20=EC=A0=88=EC=B0=A8=20=EB=B0=8F?= =?UTF-8?q?=20=EC=9E=90=EB=8F=99=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=EC=95=88=EC=A0=84=EC=84=B1=20=EC=95=88=EB=82=B4=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/git 운영 규칙.md | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/docs/git 운영 규칙.md b/docs/git 운영 규칙.md index a98bdef..e073202 100644 --- a/docs/git 운영 규칙.md +++ b/docs/git 운영 규칙.md @@ -105,18 +105,36 @@ pm2 reload smartims-api --- -## 5. 데이터 유지관리 및 백업 (Data Persistence) +## 5. 데이터 백업 및 유지관리 절차 (시놀로지 운영 서버 기준) -플랫폼 운영 중 생성되는 데이터(업로드 이미지, 매뉴얼 등)는 소스 코드와 분리되어 관리됩니다. +자동 업데이트는 데이터를 안전하게 유지하지만, 서버 이전이나 예기치 못한 환경 변화에 대비하여 다음 절차에 따라 주기적으로 백업하는 것을 권장합니다. -### �️ 업로드 이미지 (server/uploads) -* **주의**: `server/uploads/` 폴더의 내용은 Git 추적 대상이 아닙니다(`.gitignore`). -* **현상**: 개발 환경에서 등록한 자산 이미지는 운영 서버로 배포되지 않으므로, **운영 서버에서 직접 재등록**해야 합니다. -* **보존**: 운영 서버를 재설치하거나 폴더를 삭제해야 할 경우, 반드시 `server/uploads/` 폴더를 별도로 백업한 후 복구해야 기존 자산 이미지들이 유지됩니다. +### ✅ 자동 업데이트 시 데이터 안전성 +* **파일 안전**: 시스템 관리 메뉴를 통한 **[자동 업데이트]** 실행 시, `server/uploads` 폴더는 Git 추적 제외 대상이므로 **삭제되거나 초기화되지 않고 그대로 유지**됩니다. +* **DB 안전**: 업데이트 시 기존 데이터베이스의 테이블 구조만 업데이트(Migration)하며, 이미 등록된 자산 데이터는 보존됩니다. -### 🗄️ 데이터베이스 (MariaDB) -* 모든 자산 정보와 설정값은 DB에 저장됩니다. 업데이트 전 반드시 DB 백업을 수행하세요. -* **백업 예시**: `mysqldump -u [user] -p smartims > backup_date.sql` +### 📦 수동 백업 절차 (Step-by-Step) +운영 서버(시놀로지) SSH 터미널에서 아래 순서대로 실행하여 백업 파일을 생성합니다. + +#### 1단계: 업로드 이미지 백업 +자산 이미지 및 매뉴얼 파일이 저장된 폴더를 압축합니다. +```bash +# [위치: /volume1/web/smartims] +# uploads 폴더를 backup_images_오늘날짜.tar.gz로 압축 +tar -czvf backup_images_$(date +%Y%m%d).tar.gz server/uploads/ +``` + +#### 2단계: 데이터베이스(DB) 백업 +시스템의 모든 텍스트 데이터(자산 정보, 계정, 로그 등)를 추출합니다. +```bash +# [위치: /volume1/web/smartims] +# .env에 설정된 정보를 바탕으로 DB 전체를 백업 +# (비밀번호 입력 프롬프트가 뜨면 DB 비밀번호 입력) +/usr/local/mariadb10/bin/mysqldump -u root -p smartims > backup_db_$(date +%Y%m%d).sql +``` + +#### 3단계: 백업 파일 안전 보관 +생성된 `backup_images_*.tar.gz`와 `backup_db_*.sql` 파일을 시놀로지 File Station을 통해 외부 저장소나 PC로 내려받아 보관하십시오. --- @@ -124,3 +142,4 @@ pm2 reload smartims-api 1. **실행 위치 확인**: 특히 `pm2` 명령어나 `server` 관련 설정은 반드시 `server` 폴더 내에서 실행하거나 경로를 정확히 지정해야 합니다. 2. **경로 이동 주의**: `cd server`를 통해 폴더를 이동하여 작업을 마친 후에는 반드시 `cd ..`를 통해 다시 루트 폴더로 복귀하여 다음 작업에 혼선이 없도록 합니다. 3. **권한 관리**: 운영 서버에서는 반드시 서비스 실행 권한을 가진 계정으로 명령어를 실행해야 `PM2` 프로세스 관리에 문제가 생기지 않습니다. +4. **수동 설치 주의**: `git clone`을 새로 받아 설치할 때는 기존 `uploads` 폴더가 포함되어 있지 않으므로 반드시 위 1단계에서 만든 백업본을 복구해야 합니다.