DevOps Cheat Sheet
실무에서 자주 쓰는 핵심 명령어 모음
kubectl get pods -A 모든 네임스페이스의 Pod 조회kubectl describe pod <name> Pod 상세 정보 확인kubectl logs -f <pod> -c <container> 컨테이너 로그 실시간 확인kubectl exec -it <pod> -- /bin/sh Pod 내부 쉘 접속kubectl top pods --sort-by=memory 메모리 사용량 기준 정렬kubectl get events --sort-by=.lastTimestamp 최근 이벤트 조회kubectl rollout restart deploy/<name> Deployment 재시작kubectl rollout undo deploy/<name> 이전 버전으로 롤백kubectl scale deploy/<name> --replicas=3 레플리카 수 조정kubectl port-forward svc/<name> 8080:80 로컬 포트 포워딩kubectl get nodes -o wide 노드 상세 정보 (IP, OS 등)kubectl drain <node> --ignore-daemonsets 노드 유지보수 모드kubectl taint nodes <node> key=value:NoSchedule 노드 테인트 설정kubectl get pvc -A 전체 PVC 상태 확인kubectl config use-context <ctx> 클러스터 컨텍스트 전환aws sts get-caller-identity 현재 인증 정보 확인aws ec2 describe-instances --query "Reservations[*].Instances[*].[InstanceId,State.Name,Tags[?Key=='Name'].Value|[0]]" --output table EC2 인스턴스 목록 (테이블)aws s3 sync ./local s3://bucket/path 로컬 → S3 동기화aws logs tail /aws/lambda/<fn> --follow CloudWatch 로그 실시간aws eks update-kubeconfig --name <cluster> EKS kubeconfig 갱신aws ecr get-login-password | docker login --username AWS --password-stdin <account>.dkr.ecr.<region>.amazonaws.com ECR 로그인aws ssm start-session --target <instance-id> SSM 세션 매니저 접속aws cloudformation describe-stacks --stack-name <name> --query "Stacks[0].Outputs" CFn 스택 Output 조회aws iam list-attached-role-policies --role-name <role> 역할에 붙은 정책 조회aws rds describe-db-instances --query "DBInstances[*].[DBInstanceIdentifier,DBInstanceStatus]" RDS 인스턴스 상태terraform init -upgrade 프로바이더 플러그인 업그레이드terraform plan -out=tfplan 실행 계획 파일로 저장terraform apply tfplan 저장된 계획 적용terraform state list 관리 중인 리소스 목록terraform state show <resource> 리소스 상세 상태terraform state mv <src> <dst> 리소스 이름/위치 변경terraform import <resource> <id> 기존 리소스 가져오기terraform destroy -target=<resource> 특정 리소스만 삭제terraform fmt -recursive 코드 포맷팅 (재귀)terraform validate 설정 파일 문법 검증terraform output -json 출력값 JSON으로 확인terraform force-unlock <lock-id> 잠금 강제 해제docker build -t <tag> --no-cache . 캐시 없이 이미지 빌드docker run -d -p 8080:80 --name <n> <img> 백그라운드 컨테이너 실행docker exec -it <container> /bin/sh 실행 중 컨테이너 쉘 접속docker logs -f --tail 100 <container> 최근 100줄부터 로그 추적docker system prune -a --volumes 미사용 리소스 전체 정리docker stats --no-stream 컨테이너 리소스 사용량 스냅샷docker inspect <container> | jq ".[0].NetworkSettings" 네트워크 설정 확인docker compose up -d --build Compose 빌드 후 백그라운드 실행docker save <img> | gzip > img.tar.gz 이미지를 파일로 저장docker cp <container>:/path ./local 컨테이너에서 파일 복사git log --oneline --graph --all 전체 브랜치 히스토리 그래프git diff --stat HEAD~3 최근 3커밋 변경 통계git stash push -m "message" 작업 임시 저장 (메시지)git cherry-pick <commit> 특정 커밋만 현재 브랜치에 적용git rebase -i HEAD~5 최근 5커밋 인터랙티브 리베이스git bisect start && git bisect bad && git bisect good <commit> 이진 탐색으로 버그 커밋 찾기git reflog 모든 HEAD 이동 기록 확인git reset --soft HEAD~1 마지막 커밋 취소 (변경 유지)git clean -fd 추적되지 않는 파일/폴더 삭제git blame -L 10,20 <file> 10-20줄 작성자 확인ss -tlnp 리스닝 포트 및 프로세스 확인journalctl -u <service> -f 서비스 로그 실시간 확인htop -p $(pgrep -d, <process>) 특정 프로세스만 모니터링curl -o /dev/null -s -w "%{http_code}" <url> HTTP 상태 코드만 확인find / -name "*.log" -mtime +7 -delete 7일 이상 된 로그 삭제du -sh * | sort -rh | head -10 디렉토리별 용량 Top 10watch -n 2 "kubectl get pods" 2초마다 명령 반복 실행xargs -P 4 -I {} sh -c "{}" 4개 병렬 실행awk '{print $1}' access.log | sort | uniq -c | sort -rn | head 접속 IP Top 집계openssl s_client -connect host:443 2>/dev/null | openssl x509 -noout -dates SSL 인증서 만료일 확인