Linux 기초정리 (2)

CODA·2026년 4월 20일

📂 목차

  1. 환경변수: 보안과 유연성의 핵심
  2. Cron & Crontab: 24시간 일하는 자동화 비서
  3. 압축과 보관: tar & gzip의 차이와 주의점
  4. 계정 관리: 서버의 보안과 책임 추적
  5. Systemd: 서비스의 생사여탈권 쥐기
  6. 네트워크 및 모니터링: 장애 진단의 정석
  7. SSH: 서버 간 순간이동과 원격 제어
  8. 패키지 관리: dnf와 rpm 활용법
  9. 🚨 트러블슈팅: 오늘 겪은 실무 에러 해결법

1. 환경변수: 보안과 유연성의 핵심

환경변수는 시스템 전체가 공유하는 **'공용 메모판'**입니다.

  • 실무 활용: DB 비밀번호나 API 키를 코드에 직접 적지 않고 환경변수(DB_PASSWORD)에 저장하여 보안을 강화합니다.
  • AI 프로젝트 적용: 모델 경로(/data/models/v1)를 환경변수로 지정하면 코드 수정 없이 경로만 바꿔서 모델 버전을 관리할 수 있습니다.
  • 핵심 변수: $PATH (명령어 검색 경로), $HOME (사용자 홈 폴더).

2. Cron & Crontab: 24시간 일하는 자동화 비서

사람이 일일이 명령어를 치지 않아도 정해진 시간에 스크립트를 실행해 주는 비서입니다.
- 개발된 배치프로그램을 주기적으로 수행시켜주는 역할

⏰ 시간 표현식 (분-시-일-월-요)

  • 30 2 * * *: 매일 새벽 2시 30분 실행.
  • 0 18 * * 1-5: 평일(월~금) 오후 6시 정각 실행.
  • */10 * * * *: 10분마다 실행.

💡 실무 엔지니어의 수칙

  1. 절대 경로 사용: 크론탭은 여러분이 어디 있는지 모릅니다. 반드시 /root/scripts/test.sh처럼 전체 경로를 적으세요.
  2. 로그 기록 필수: 뒤에 >> /logs/batch.log 2>&1을 붙여 에러까지 모두 기록하는 습관을 들여야 "아침에 난리가 나는" 상황을 막을 수 있습니다.

3. 압축과 보관: tar & gzip의 차이와 주의점

  • tar (그냥 하나로 정리): 여러 파일/폴더를 하나로 묶습니다. 압축보다는 '정리'에 가깝습니다.
    • tar -czf logs.tar.gz logs/: 묶으면서 동시에 압축(실무 표준).
  • gzip (이게 진짜 압축): 낱개 파일을 압축할 때 씁니다.
    • ⚠️ 주의: 기본적으로 원본 파일을 삭제합니다. 원본을 유지하려면 gzip -k를 써야 합니다.

4. 계정 관리: 서버의 보안과 책임 추적

"누가, 언제, 무엇을 했는가"를 알기 위해 계정 분리는 필수입니다.

  • /etc/passwd: 사용자 명부. 마지막 필드가 /bin/bash면 사람, /sbin/nologin이면 시스템 계정입니다.
  • 서비스 전용 계정: 배포 전용 계정(report_admin)을 따로 만들면, 개인 계정이 삭제되어도 자동화 작업이 멈추지 않습니다.
  • 삭제의 정석: passwd -l(잠금) → ps -u(프로세스 확인) → find / -user(파일 확인) → userdel -r(최종 삭제).

5. Systemd: 서비스의 생사여탈권 쥐기

서버 재부팅 후에도 프로그램이 자동으로 살아나게 하려면 systemd 관리가 필수입니다.

  • restart vs reload:
    • restart: 껐다 켬 (짧은 중단 발생). 장애 대응의 80%는 여기서 해결됩니다.
    • reload: 설정만 다시 읽음 (중단 없음). 금융권처럼 가동 시간이 중요한 곳에서 선호합니다.
  • enable --now: "지금 즉시 실행하고, 앞으로 재부팅해도 자동 시작해라"라는 마법의 구문입니다.

6. 네트워크 및 모니터링: 장애 진단의 정석

"서버가 느려요", "접속이 안 돼요"라는 신고를 받았을 때의 대처법입니다.

  • ping: 길(네트워크)이 뚫려 있는지 확인. 단, 은행 서버는 보안상 응답을 안 할 수도 있습니다.
  • 포트(Port) 비유: IP가 건물 주소라면, 포트는 호수입니다. 8000번 포트가 LISTEN 중인지 확인해야 서비스 접속이 가능합니다.
  • top / htop: CPU와 메모리의 실시간 CCTV. load average가 코어 수보다 높으면 서버가 과부하 상태인 겁니다.

7. SSH: 서버 간 순간이동과 원격 제어

터미널에서 다른 서버로 건너가 작업을 수행하는 도구입니다.

  • 원격 명령: ssh root@IP "명령어"를 쓰면 로그인 없이 결과만 받아올 수 있어 대량의 서버를 모니터링할 때 유용합니다.
  • 지문(Fingerprint): 처음 접속 시 나오는 yes/no는 상대 서버의 '얼굴'을 기록하는 과정입니다.

8. 패키지 관리: dnf와 rpm 활용법

  • dnf (스마트 쇼핑): 필요한 패키지와 그에 딸린 의존성 파일까지 한 번에 설치합니다. (실무 주력)
  • rpm (상세 검수): 이미 설치된 프로그램의 버전이나 구성 파일을 꼼꼼히 확인할 때 씁니다.

profile
금융권에 가고싶은 김코다입니다. 취업을 하면 기타치며 조르바처럼 살고파요. -> 금융권 왔다. 취업도 했다. 그러나 여전히 조르바처럼..

0개의 댓글