iBetter Books
수정

02장. 자동화 프로젝트

이제 진짜 스크립트를 만듭니다.

앞에서 배운 것들을 떠올려봅시다. 변수와 조건문, 반복문, 함수, 배열. grep으로 패턴 검색, sed로 텍스트 변환, awk로 데이터 파싱. trap으로 시그널 처리, mktemp로 안전한 임시 파일. 그리고 방금 배운 crontab.

이 장에서는 이 모든 것이 하나로 합쳐집니다. 4개의 프로젝트를 만듭니다. 각 프로젝트는 실무에서 실제로 쓰이는 패턴을 담고 있습니다. 코드는 전부 동작합니다. 복사해서 바로 써도 됩니다.

실전 프로젝트부터는 셔뱅을 #!/usr/bin/env bash로 사용합니다. PART 03에서는 Ubuntu 단일 환경 기준으로 #!/bin/bash를 사용했지만, 실무에서 배포하는 스크립트는 다양한 환경에서 실행될 수 있으므로 이식성이 높은 #!/usr/bin/env bash가 더 적합합니다. 또한 set -euo pipefail로 오류를 엄격하게 처리하는 패턴을 함께 사용합니다. 이 옵션의 자세한 동작 원리는 PART 11에서 다룹니다.

각 프로젝트는 독립적으로 동작하도록 구성했습니다. 실무에서는 PART 05에서 배운 source 패턴을 활용하여 로깅 함수 같은 공통 유틸리티를 별도 파일로 분리하고 여러 스크립트에서 불러 쓰는 것이 좋습니다. 여기서는 각 프로젝트를 복사해서 바로 사용할 수 있도록 자기 완결적으로 작성했습니다.

구성

제목 핵심 기술
01 자동 백업 스크립트 tar, find, crontab, trap, 로깅
02 로그 분석과 알림 grep, awk, curl (Slack webhook)
03 서버 모니터링 대시보드 top, free, df, 색상 출력, CSV
04 사용자 관리 자동화 useradd, CSV 파싱, dry-run, 리포트