Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- SDK upgrade
- nodejs
- MySQL
- react
- css framework
- --watch
- Google Refund
- linux
- spread 연산자
- OverTheWire
- docker
- java
- Camera Movement
- springboot
- Camera Zoom
- express
- screencapture
- Unity IAP
- server
- Digital Ocean
- rpg server
- Packet Network
- Spring Boot
- Unity Editor
- Git
- unity
- critical rendering path
- draganddrop
- mongoDB
- Google Developer API
Archives
- Today
- Total
우당탕탕 개발일지
[방치RPG 서버 제작기] 9. 유니티 파일 서버로 전송하기 본문
뽑기를 하려면 확률표를 공유해야 한다. 작업편의상, 유니티 프로젝트에 확률표를 옮기면 서버로 옮기는 쉘스크립트를 작성했다.
유니티는 .meta파일이 함께있기때문에, csv파일만 전송하도록 했다.
csv파일이 삭제되는 경우도 있기때문에, 전송받은 파일을 압축해제 하기 전 , csv폴더자체를 삭제함으로써 100% 동기화한다.
#!/bin/bash
# === 설정 ===
PROJECT_ROOT=$(pwd)
SOURCE_DIR="$PROJECT_ROOT/Assets/04_CSVs"
TEMP_DIR="$PROJECT_ROOT/tmp_csv_upload"
ARCHIVE_NAME="csvs.tar.gz"
REMOTE_USER="ubuntu"
REMOTE_HOST="서버_IP" # 👉 여기에 실제 IP 입력
REMOTE_DIR="/root/danteRPG"
REMOTE_TARGET_DIR="$REMOTE_DIR/csvs"
# === 1. 로컬 임시 디렉토리 준비 ===
rm -rf "$TEMP_DIR"
mkdir -p "$TEMP_DIR"
# === 2. .csv 파일 수집 ===
echo "🔍 .csv 파일을 수집 중..."
cd "$SOURCE_DIR" || { echo "❌ SOURCE_DIR 진입 실패"; exit 1; }
CSV_FILES=$(find . -type f -iname "*.csv")
if [ -z "$CSV_FILES" ]; then
echo "⚠️ .csv 파일을 찾을 수 없음"
exit 1
fi
echo "📄 복사할 파일:"
echo "$CSV_FILES"
# === 3. 파일 복사 (디렉토리 유지, 공백 대응) ===
while IFS= read -r file; do
src="$SOURCE_DIR/$file"
dest="$TEMP_DIR/$file"
echo "➡️ $src → $dest"
mkdir -p "$(dirname "$dest")"
cp "$src" "$dest"
done <<< "$CSV_FILES"
# === 4. 압축 ===
cd "$TEMP_DIR" || exit 1
tar -czf "$PROJECT_ROOT/$ARCHIVE_NAME" .
# === 5. 서버로 전송 ===
echo "🚀 서버로 전송 중..."
scp "$PROJECT_ROOT/$ARCHIVE_NAME" $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/
# === 6. 서버에서 압축 해제 ===
echo "🧨 서버에서 기존 csvs 폴더 삭제 후 압축 해제 중..."
ssh $REMOTE_USER@$REMOTE_HOST <<EOF
rm -rf $REMOTE_TARGET_DIR
mkdir -p $REMOTE_TARGET_DIR
tar -xzf $REMOTE_DIR/$ARCHIVE_NAME -C $REMOTE_TARGET_DIR
rm -f $REMOTE_DIR/$ARCHIVE_NAME
echo "✅ 서버 처리 완료: $REMOTE_TARGET_DIR 재생성됨"
EOF
# === 7. 로컬 정리 ===
rm -rf "$TEMP_DIR"
rm -f "$PROJECT_ROOT/$ARCHIVE_NAME"
echo "🎉 모든 작업 성공적으로 완료!"'Server > 방치RPG 서버' 카테고리의 다른 글
| [방치RPG 서버 제작기] 11. 점검모드 & 화이트리스트 관리 (0) | 2025.05.24 |
|---|---|
| [방치RPG 서버 제작기] 10. csv를 이용한 확률 관리 & 뽑기 API (0) | 2025.05.21 |
| [방치RPG 서버 제작기] Docker 내의 db에 접속하기 ( DBeaver ) (0) | 2025.05.06 |
| [방치RPG 서버 제작기] 8. 서버배포 및 SSL 인증서발급하기 (1) | 2025.04.26 |
| [방치RPG 서버 제작기] 7. backup API 구현하기 (0) | 2025.04.26 |