“7월 28일부터 도커/쿠버네티스 스터디를 시작했다. 총 15일 동안 진행되는 3주 과정이었다."
사실 도커와 쿠버네티스를 처음 접한 건 아니었지만, 오랜만에 사이드 프로젝트를 준비하려다 보니 기억이 가물가물해서 다시 공부할 필요를 느꼈다. 마침 위키북스에서 스터디 기회가 생겨 참여하게 되었는데, 매일 인증을 해야 하는 방식이라 “이거라도 하지 않으면 또 미루겠구나” 싶어서 시작했다.
스터디 일정
위키북스 카페에 매일 매일 스터디를 인증 해야하는 방식이라 이거라도 하지않으면 계속 미룰거 같아서 시작하게 되었다. 책을 보다가 모르는 부분이 생기면 저자님께 직접 질문할 수 있는 게시판이 있어서 특히 도움이 많이 됐다.
질문 게시판
답변을 보면서 혼자 공부하는 것보다 훨씬 빨리 이해할 수 있었다. 책의 구성도 도커 기초부터 시작해서 쿠버네티스 모니터링까지 단계적으로 이어져 있어서 부담 없이 따라갈 수 있었고, 그림과 실습이 풍부해 이해하는 데 큰 어려움은 없었다.
그냥 이론으로만 공부를 했다면 그냥 넘어갔을거같은데 실습이 많아서 오히려 더 도움이 컸던거 같다. 오늘이 마지막 인증날인데 일이 있어서 매일 꾸준히 인증하지 못한게 아쉬었지만 그래도 끝까지 달리면서 꾸준함의 중요성을 다시 느낄 수 있었다.
짧은 기간이었지만 이론만 볼 때와 달리 실습 위주로 진행하다 보니 확실히 머릿속에 남는 게 많았다.
개인 노션카페 스터디 인증
이번에 공부한 내용은 개인 노션에도 기록해두었고, 필요할 때 다시 찾아볼 계획이다. 앞으로도 이런 기회가 있다면 꼭 참여하고 싶다. 무엇보다 이번 스터디를 통해 다시 도커/쿠버네티스 감을 잡을 수 있었고, 이제는 실제 프로젝트에 적용해보고 싶은 마음이 커졌다.
lastb는 /var/log/btmp는 보안상 민감한 정보를 포함하므로 일반 사용자에게 읽기 권한이 없습니다.
root만 읽을 수 있는 권한이므로, 반드시 sudo로 실행해야 합니다.
파일명
저장 위치
내용
관련 명령어
권한 필요
wtmp
/var/log/wtmp
정상 로그인/로그아웃 기록
last
sudo 없이 가능
btmp
/var/log/btmp
실패한 로그인 시도 기록
lastb
sudo 필요
faillog
/var/log/faillog
계정별 누적 실패 로그인 횟수, 잠금 등
faillog
sudo 필요
로그를 다룰 때 유용한 명령어
# 로그 실시간 보기
tail -f /var/log/syslog
# 특정 키워드로 로그 검색
grep "error" /var/log/syslog
# 가장 최근의 커널 메시지 보기
dmesg | tail
# ssh 접속 실패 확인
grep "Failed password" /var/log/auth.log
마무리 및 요약
시스템 관리자나 DevOps 엔지니어는 /var/log에 어떤 로그가 있고, 언제 로그를 확인해야 하는지를 꼭 알아야하기 때문에 중요한 내용입니다!
리눅스에서 데몬(서비스)을 관리하는 방식은 예전에는 init.d를 사용했지만, 최근 대부분 리눅스 배포판(Ubuntu, CentOS, Rocky 등)은 systemd 기반으로 전환되었습니다. systemd를 알아보기 전에 예전에 사용했던 init.d를 먼저 알아보겠습니다.
init.d란 무엇인가?
init.d는 리눅스에서 부팅 시 실행되는 서비스(데몬)를 관리하기 위한 디렉터리이며, SysV Init (System V initialzaion)방식의 일환입니다. init 시스템은 가장 먼저 실행되는 프로세스 (PID 1)로, 시스템을 초기화하고 서비스들을 단계별로 실행하는 역할을 합니다.
즉, init.d는 리눅스 시스템이 부팅될 때 어떤 서비스를 어떤 순서로 실행할지 정의하는 구조 중 하나입니다.
위치와 구조
- init.d 스크립트는 보통 /etc/init.d/ 디렉터리에 위치합니다.
- 이 안에는 서비스마다 하나씩 쉘 스크립트 파일이 있습니다.
모두 쉘 스크립트 파일로 구성되어 cat 명령어를 치면 스크립트 파일의 내용을 볼 수 있습니다.
netstat -tuln
ss -tuln
# 출력 예시
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
7. 압축 & 백업
명령어
설명
예시
tar
압축/해제
tar -czvf backup.tar.gz folder/, tar -xzcf bacokup.tar.gz
zip, unzip
압축
zip -r archive.zip folder/, unzip archive.zip
tar 명령어
tar [옵션] [파일명] [대상 파일/디렉터리]
# 디렉터리를 tar.gz로 압축
tar -czvf archive.tar.gz myfolder/
# tar.gz 압축 해제
tar -xzvf archive.tar.gz
# 다른 디렉토리에 압축 해제
tar -xzvf archive.tar.gz -C /target/path/
주요 옵션
옵션
의미
-c
새 tar 파일 생성 (create)
-x
압축 해제 (extract)
-v
처리 과정을 출력 (verbose)
-f
파일 이름 지정 (file)
-z
gzip으로 압축 (.tar.gz)
-j
bzip2 압축 사용 (.tar.bz2)
-J
xz 압축 사용 (.tar.xz)
-C
압축 해제 위치 지정 (directory)
zip,unzip 명령어
zip [옵션] [압축할_파일명.zip] [대상_파일들]
# 디렉터리 압축 (재귀적)
zip -r archive.zip myfolder/
# 암호 설정하여 압축
zip -re secure.zip myfolder/
unzip [옵션] [파일명.zip]
# 현재 위치에 압축 해제
unzip archive.zip
# 지정한 폴더에 압축 해제
unzip archive.zip -d ./target-folder/
# 목록만 확인
unzip -l archive.zip