Commit 78ee9560 authored by platyhouse's avatar platyhouse

# 설치 스크립트 및 문서 추가

## 새 파일 추가

### 설치 스크립트
- ptyInstall.sh: 원격 설치 스크립트 추가
  - curl/wget으로 원격 실행 지원
  - root 권한 자동 확인 및 sudo 재실행
  - git 미설치 시 자동 설치 (yum/dnf/apt-get/brew 지원)
  - 기존 설치 시 git pull로 업데이트, 신규 설치 시 git clone
  - 설치 완료 후 ptySetBash 자동 실행

### 프로젝트 README
- README.md: 프로젝트 소개 및 사용 가이드 추가
  - 원격/수동 설치 방법
  - 설정 파일 (MySQL, Elasticsearch, AI API) 예시
  - 스크립트 목록 및 설명
  - 사용 예시 (백업/복원, Elasticsearch, AI API, 크론)
  - 공통 옵션 설명

## 문서 업데이트

### CLAUDE.md
- 설치 섹션 추가
  - ptyInstall.sh 원격 설치 스크립트 문서화
  - ptySetBash Bash 환경 설정 문서화
  - 설치 경로, 동작 순서, 설정 내용 설명
parent 891e088b
......@@ -443,6 +443,57 @@ database=your_db
charset=utf8mb4
```
## 설치
### ptyInstall.sh - 원격 설치 스크립트
신규 서버에 pty_centos를 설치하는 스크립트입니다. curl 또는 wget으로 원격 실행할 수 있습니다.
```bash
# curl 사용
curl -sSL https://gitlab.platyhouse.com/platyhouse/centos/-/raw/master/ptyInstall.sh | bash
# wget 사용
wget -qO- https://gitlab.platyhouse.com/platyhouse/centos/-/raw/master/ptyInstall.sh | bash
```
**동작 순서:**
1. root 권한 확인 (필요 시 sudo로 재실행)
2. git 설치 확인 (없으면 자동 설치: yum/dnf/apt-get/brew 지원)
3. 기존 설치 확인
- 기존 설치 있음: `git pull`로 업데이트
- 신규 설치: `git clone`으로 설치
4. 실행 권한 부여 (`pty*` 스크립트들에 chmod +x)
5. `ptySetBash` 실행 (bash 환경 설정)
**설치 경로:** `/var/lib/pty_centos.git`
**설치 후:**
```bash
source ~/.bashrc # 또는 새 터미널 열기
```
### ptySetBash - Bash 환경 설정
bash/zsh 환경을 설정하는 스크립트입니다. ptyInstall.sh에서 자동 호출됩니다.
```bash
./ptySetBash
```
**설정 내용:**
- 프롬프트 설정 (git branch 표시 포함)
- 히스토리 설정 (HISTSIZE, HISTTIMEFORMAT)
- 유용한 alias (ll, gs, gd, ga, gb, gc, gl, gac)
- git 설정 (color, quotepath, precomposeunicode)
- PATH에 스크립트 경로 추가
**대상 파일:**
- macOS: `~/.zshrc`
- Linux: `~/.bashrc` (선택적으로 `/etc/bashrc`)
---
## 유틸리티 스크립트
### ptyRun - 스크립트 중복 실행 제어
......
# pty_centos
Elasticsearch, MySQL, AI API 등 다양한 서비스를 다루는 CLI 도구 모음입니다.
## 설치
### 원격 설치 (권장)
신규 서버에서 다음 명령어 하나로 설치할 수 있습니다:
```bash
curl -sSL https://gitlab.platyhouse.com/platyhouse/centos/-/raw/master/ptyInstall.sh | bash
```
또는:
```bash
wget -qO- https://gitlab.platyhouse.com/platyhouse/centos/-/raw/master/ptyInstall.sh | bash
```
### 수동 설치
```bash
git clone https://gitlab.platyhouse.com/platyhouse/centos.git /var/lib/pty_centos.git
cd /var/lib/pty_centos.git
chmod +x pty*
./ptySetBash
source ~/.bashrc
```
## 설정 파일
각 서비스별 설정 파일을 홈 디렉토리에 생성해야 합니다:
| 서비스 | 설정 파일 |
|--------|----------|
| MySQL | `~/.ptyMysqlConfig.ini` |
| Elasticsearch | `~/.ptyElasticConfig.ini` |
| AI API | `~/.ptyAIConfig.ini` |
### ~/.ptyMysqlConfig.ini
```ini
[default]
host=localhost
username=root
password="your_password"
database=your_db
charset=utf8mb4
[production]
host=prod-server
username=admin
password="prod_password"
database=prod_db
charset=utf8mb4
```
### ~/.ptyElasticConfig.ini
```ini
[default]
host=https://localhost:9200
apiKey=your_api_key
[production]
host=https://prod-elastic:9200
apiKey=production_api_key
```
### ~/.ptyAIConfig.ini
```ini
[default]
provider=anthropic
model=claude-sonnet-4-5-20250514
apiKey=your_anthropic_api_key
[openai]
provider=openai
model=gpt-4o
apiKey=your_openai_api_key
[ollama]
provider=ollama
model=llama3
apiUrl=http://localhost:11434
```
---
## 스크립트 목록
모든 스크립트는 `--help` 옵션으로 상세 도움말을 확인할 수 있습니다.
### MySQL 도구
| 스크립트 | 설명 |
|---------|------|
| `ptyMysqlInfo` | MySQL 서버 정보 조회 |
| `ptyMysqlBackup` | 테이블 백업 (mysqldump) |
| `ptyMysqlRestore` | SQL/tgz 파일 복원 |
| `ptyMysqlOverwrite` | 서버 간 테이블 복사 |
### Elasticsearch 도구
| 스크립트 | 설명 |
|---------|------|
| `ptyElasticGetIndexs` | 인덱스 목록 조회 |
| `ptyElasticGetIndex` | 인덱스 상세 정보 |
| `ptyElasticGetIndexInfo` | 인덱스 매핑/설정 조회 |
| `ptyElasticUploadFromMysql` | MySQL → Elasticsearch 업로드 |
### AI API 도구
| 스크립트 | 설명 |
|---------|------|
| `ptyAIGetMessage` | AI API 메시지 전송 (Claude, GPT, Gemini, Ollama) |
| `ptyAIStatistics` | AI 사용량 통계 |
### 유틸리티
| 스크립트 | 설명 |
|---------|------|
| `ptyRun` | 스크립트 중복 실행 제어 + 로깅 |
| `ptyCronBuild` | 크론탭 자동 등록 |
| `ptySetBash` | Bash 환경 설정 |
---
## 사용 예시
### MySQL 백업/복원
```bash
# 단일 테이블 백업
ptyMysqlBackup mydb users
# 전체 백업 (압축)
ptyMysqlBackup '*' '*' --tgz --output=/backup
# 복원
ptyMysqlRestore "*" --input=/backup
# 서버 간 테이블 복사
ptyMysqlOverwrite --src-mysql=production --dst-mysql=development \
--src-db=prod_db --dst-db=dev_db \
--src-table=users --dst-table=users
```
### Elasticsearch
```bash
# 인덱스 목록
ptyElasticGetIndexs
# 인덱스 상세
ptyElasticGetIndex my_index
# MySQL 테이블을 Elasticsearch로 업로드
ptyElasticUploadFromMysql users users_index --recreate
```
### AI API
```bash
# Claude로 메시지 전송
ptyAIGetMessage "안녕하세요"
# GPT 사용
ptyAIGetMessage "Hello" --ai=openai
# JSON 출력
ptyAIGetMessage "테스트" --json
```
### 크론 + 중복 실행 제어
```bash
# 10분마다 실행, 중복 차단, 최대 10분 타임아웃
ptyCronBuild 'ptyRun "php /path/to/script.php" --max-run-time=10' --daily-10min
```
---
## 공통 옵션
모든 스크립트에서 사용 가능한 옵션:
| 옵션 | 설명 |
|------|------|
| `--help` | 도움말 출력 |
| `--verbose` | 상세 로그 출력 |
| `--edit` | 스크립트를 에디터로 열기 |
| `--dry-run` | 실제 실행 없이 미리보기 (데이터 변경 스크립트) |
서비스별 섹션 지정:
| 옵션 | 설명 |
|------|------|
| `--mysql=섹션명` | MySQL INI 섹션 (기본값: default) |
| `--elastic=섹션명` | Elasticsearch INI 섹션 (기본값: default) |
| `--ai=섹션명` | AI API INI 섹션 (기본값: default) |
---
## 라이선스
Private - PlatyHouse
#!/bin/bash
#######################################
# pty_centos 설치 스크립트
#
# 사용법:
# curl -sSL https://gitlab.platyhouse.com/platyhouse/centos/-/raw/master/ptyInstall.sh | bash
#
# 또는:
# wget -qO- https://gitlab.platyhouse.com/platyhouse/centos/-/raw/master/ptyInstall.sh | bash
#
#######################################
set -e # 에러 발생 시 스크립트 중단
# 색상 정의
CYAN='\033[0;36m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# 설치 경로
INSTALL_DIR="/var/lib/pty_centos.git"
GIT_URL="https://gitlab.platyhouse.com/platyhouse/centos.git"
echo ""
echo -e "${CYAN}╔══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${CYAN}║ pty_centos 설치 스크립트 ║${NC}"
echo -e "${CYAN}╚══════════════════════════════════════════════════════════════╝${NC}"
echo ""
# root 권한 확인
if [[ $EUID -ne 0 ]]; then
echo -e "${YELLOW}[INFO]${NC} root 권한이 필요합니다. sudo로 재실행합니다..."
exec sudo bash "$0" "$@"
fi
# git 설치 확인
if ! command -v git &> /dev/null; then
echo -e "${YELLOW}[INFO]${NC} git이 설치되어 있지 않습니다. 설치 중..."
# OS 감지 및 git 설치
if command -v yum &> /dev/null; then
yum install -y git
elif command -v dnf &> /dev/null; then
dnf install -y git
elif command -v apt-get &> /dev/null; then
apt-get update && apt-get install -y git
elif command -v brew &> /dev/null; then
brew install git
else
echo -e "${RED}[ERROR]${NC} git을 자동 설치할 수 없습니다. 수동으로 설치해주세요."
exit 1
fi
echo -e "${GREEN}[OK]${NC} git 설치 완료"
fi
# 기존 설치 확인
if [[ -d "$INSTALL_DIR" ]]; then
echo -e "${YELLOW}[INFO]${NC} 기존 설치가 발견되었습니다: $INSTALL_DIR"
echo -e "${YELLOW}[INFO]${NC} git pull로 업데이트합니다..."
cd "$INSTALL_DIR"
git pull origin master
echo -e "${GREEN}[OK]${NC} 업데이트 완료"
else
echo -e "${YELLOW}[INFO]${NC} 신규 설치를 진행합니다..."
echo -e "${YELLOW}[INFO]${NC} 경로: $INSTALL_DIR"
# 부모 디렉토리 생성
mkdir -p "$(dirname "$INSTALL_DIR")"
# git clone
git clone "$GIT_URL" "$INSTALL_DIR"
echo -e "${GREEN}[OK]${NC} 설치 완료"
fi
# 실행 권한 부여
echo -e "${YELLOW}[INFO]${NC} 실행 권한 설정 중..."
chmod +x "$INSTALL_DIR"/pty*
echo -e "${GREEN}[OK]${NC} 실행 권한 설정 완료"
# ptySetBash 실행
echo ""
echo -e "${CYAN}══════════════════════════════════════════════════════════════${NC}"
echo -e "${CYAN} ptySetBash 실행${NC}"
echo -e "${CYAN}══════════════════════════════════════════════════════════════${NC}"
echo ""
cd "$INSTALL_DIR"
bash ./ptySetBash
echo ""
echo -e "${GREEN}╔══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${GREEN}║ 설치가 완료되었습니다! ║${NC}"
echo -e "${GREEN}╚══════════════════════════════════════════════════════════════╝${NC}"
echo ""
echo -e "설치 경로: ${CYAN}$INSTALL_DIR${NC}"
echo -e "변경사항 적용: ${YELLOW}source ~/.bashrc${NC} 또는 새 터미널 열기"
echo ""
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment