diff --git a/local-dev/_diag.sh b/local-dev/_diag.sh deleted file mode 100755 index bfcbcb8..0000000 --- a/local-dev/_diag.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -ssh -o BatchMode=yes -o ConnectTimeout=15 aidev@chatbot.exdev.co.kr 'bash -s' <<'EOSSH' -export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/Applications/Docker.app/Contents/Resources/bin:$PATH" -echo "=== listening ports ===" -for p in 16000 16001 16002 27017 1521 28012 28013 8086 8083 8092 443; do - if lsof -iTCP:$p -sTCP:LISTEN >/dev/null 2>&1; then echo "UP :$p"; else echo "DOWN :$p"; fi -done -echo "=== docker ps ===" -docker ps --format '{{.Names}}\t{{.Status}}' 2>&1 | head -20 -echo "=== docker compose plugin ===" -docker compose version 2>&1 | head -2 -echo "=== public-ai timestamp ===" -ls -la /Users/aidev/dev/exAichatbot_agent/chatbotApp-chatbot2.0-agent/public-ai/index.html 2>/dev/null || echo "(missing)" -echo "=== HTTPS UI ===" -curl -s -o /dev/null -w 'https=%{http_code}\n' -m 10 https://chatbot.exdev.co.kr/chatbot/ai/ 2>&1 -EOSSH diff --git a/local-dev/bin/rsync b/local-dev/bin/rsync index 7fe4620..f94a604 100755 --- a/local-dev/bin/rsync +++ b/local-dev/bin/rsync @@ -105,7 +105,13 @@ TAR_EXCLUDES=() for pat in "${EXCLUDES[@]}"; do # tar 의 --exclude 는 'node_modules/' 처럼 슬래시로 끝나면 디렉터리에 매칭되지 않는다. # (rsync 문법 그대로 넘기면 node_modules 가 통째로 전송돼 메모리 부족으로 죽는다) - TAR_EXCLUDES+=(--exclude "${pat%/}") + pat="${pat%/}" + if [[ "${pat}" == /* ]]; then + # rsync 의 선행 슬래시 = 전송 루트 기준 고정. tar 멤버명은 './' 로 시작한다. + TAR_EXCLUDES+=(--anchored --exclude ".${pat}") + else + TAR_EXCLUDES+=(--no-anchored --exclude "${pat}") + fi done ssh -o BatchMode=yes "${HOST}" "mkdir -p '${REMOTE_PATH}'" diff --git a/local-dev/fix_and_start.sh b/local-dev/fix_and_start.sh deleted file mode 100755 index bd8faac..0000000 --- a/local-dev/fix_and_start.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash -export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/Applications/Docker.app/Contents/Resources/bin:/usr/bin:/bin:/usr/sbin:/sbin" -cd /Users/aidev/dev/exAichatbot_agent - -git config core.autocrlf false -git config core.eol lf - -python3 - << 'PYEOF' -import os -for d in ['kakaoChatbotSkill-chatbot2.0-agent','chatbotApi-chatbot2.0-agent']: - f = d+'/gradlew' - if os.path.exists(f): - data=open(f,'rb').read().replace(b'\r\n',b'\n').replace(b'\r',b'\n') - open(f,'wb').write(data) - os.chmod(f,0o755) - print('fixed:', f) -PYEOF - -bash server-dev/start-all-server.sh --no-pull --no-push --skip-desktop diff --git a/server-dev/sync-submodules-rsync.sh b/server-dev/sync-submodules-rsync.sh index ef41693..21f0e7b 100755 --- a/server-dev/sync-submodules-rsync.sh +++ b/server-dev/sync-submodules-rsync.sh @@ -23,16 +23,18 @@ for path in "${SUBMODULES[@]}"; do local_src="${ROOT_DIR}/${path}" [[ -d "${local_src}" ]] || { echo "ERROR: ${local_src} 없음"; exit 1; } log ">>> rsync ${path}" + # build/dist/logs 는 자바 패키지명(예: kakao.response.build)과 충돌하므로 + # 선행 슬래시로 프로젝트 최상위에만 적용한다. rsync -az --delete \ --exclude 'node_modules/' \ - --exclude 'build/' \ - --exclude 'dist/' \ --exclude '.gradle/' \ --exclude 'qdrant_data/' \ - --exclude 'logs/' \ --exclude '.next/' \ - --exclude 'web/out/' \ --exclude '.git/' \ + --exclude '/build/' \ + --exclude '/dist/' \ + --exclude '/logs/' \ + --exclude '/web/out/' \ "${local_src}/" "${EXDEV_SSH}:${REMOTE_WT}/${path}/" done