리눅스를 조금 써보다 보면 이런 생각이 들어요.
“맨날 똑같은 명령어 치는 거 자동으로 안 되나?”
“서버 백업, 로그 정리, 자동 실행 같은 거 그냥 알아서 해주면 안 될까?”
이럴 때 쉘스크립트(Shell Script)가 진짜 빛을 발합니다.
처음엔 어렵게 느껴지지만, 알고 보면 그냥 리눅스 명령어들을 순서대로 적어놓은 자동화 노트일 뿐이에요.
오늘은 실무에서 진짜 자주 쓰이는 7가지 쉘스크립트 예제를 소개해드릴게요.
파일 정리부터 백업, 서버 상태 확인까지, 바로 쓰셔도 될 만큼 실용적인 것만 골랐습니다!
📌 목차
- 매일 백업 자동 실행 스크립트
- 오래된 로그 자동 삭제 스크립트
- CPU·메모리 상태 체크 스크립트
- 폴더 내 파일 리스트 정리 스크립트
- 사용자 입력받아 처리하는 인터랙티브 스크립트
- 특정 서비스 자동 재시작 스크립트
- 디스크 사용량 경고 알림 스크립트
1. 📦 매일 백업 자동 실행 스크립트
파일 및 폴더를 지정된 백업 폴더로 매일 복사
#!/bin/bash
today=$(date +%Y-%m-%d)
backup_dir="/home/user/backup/$today"
mkdir -p "$backup_dir"
cp -r /home/user/data/* "$backup_dir"
echo "백업 완료: $today" >> /home/user/backup/backup.log
사용법:
스크립트를 daily_backup.sh로 저장 후 실행 권한을 부여하고, 크론탭에 등록하면 매일 자동 백업됩니다.
2. 🧹 오래된 로그 자동 삭제 스크립트
7일이 지난 로그 파일들을 자동으로 정리
#!/bin/bash
log_dir="/var/log/myapp"
find "$log_dir" -type f -name "*.log" -mtime +7 -exec rm -f {} \;
echo "오래된 로그 정리 완료: $(date)" >> /var/log/log_cleanup.log
실무 활용:
서버 운영 시 디스크 용량 확보용으로 필수입니다.
3. 🖥️ CPU·메모리 상태 체크 스크립트
top, free, df 명령어로 서버 상태를 기록
#!/bin/bash
logfile="/home/user/server_status.log"
echo "====== 시스템 상태 보고서: $(date) ======" >> "$logfile"
top -b -n1 | head -5 >> "$logfile"
free -h >> "$logfile"
df -h >> "$logfile"
echo "" >> "$logfile"
활용:
cron에 1시간마다 실행하도록 등록하면, 로그 기반 시스템 분석 가능.
4. 📁 폴더 내 파일 리스트 정리 스크립트
디렉토리 내 모든 파일 리스트를 정리해 파일로 저장
#!/bin/bash
target="/home/user/documents"
output="/home/user/file_list.txt"
ls -lh "$target" > "$output"
echo "파일 목록 저장 완료: $(date)" >> "$output"
5. 🎛️ 사용자 입력받아 처리하는 인터랙티브 스크립트
이름을 입력받고 인사 메시지 출력
#!/bin/bash
read -p "이름을 입력하세요: " username
echo "안녕하세요, $username 님! 좋은 하루 되세요 :)"
활용:
스크립트 테스트나 교육용으로 적합합니다.
6. 🔁 특정 서비스 자동 재시작 스크립트
서비스가 죽었는지 확인하고 자동으로 다시 실행
#!/bin/bash
service_name="apache2"
if systemctl is-active --quiet "$service_name"; then
echo "$service_name is running"
else
echo "$service_name is not running. Restarting..."
systemctl restart "$service_name"
fi
실무 활용:
중요한 웹서비스나 DB가 멈추지 않도록 방어 스크립트로 활용 가능.
7. 💽 디스크 사용량 경고 알림 스크립트
디스크 사용률이 80% 이상일 경우 경고 메시지 표시
#!/bin/bash
usage=$(df / | grep / | awk '{print $5}' | sed 's/%//')
if [ "$usage" -gt 80 ]; then
echo "경고: 디스크 사용량이 ${usage}%에 도달했습니다."
echo "$(date) - 디스크 사용 경고: ${usage}%" >> /home/user/disk_alert.log
fi
활용:
중요한 시스템에서 디스크 가득 참을 사전에 막을 수 있어요.
✅ 결론 – 자동화는 실무 생존 스킬입니다
리눅스 쉘스크립트는 단순한 명령어 자동화 이상의 가치가 있어요.
하루 5분씩 반복하는 작업을 스크립트로 1초에 처리한다면?
그게 바로 실무 능력 차이로 이어지거든요.
오늘 소개한 7가지 스크립트는 실무에서 진짜 많이 쓰이는 것들이니,
지금 바로 chmod +x로 실행 권한을 주고 실습해보세요!
며칠만 지나도, "리눅스 좀 다룰 줄 아네" 소리 들으실 수 있을 거예요 😊
'리눅스의 모든 것' 카테고리의 다른 글
5분 만에 웹페이지 띄우기! 리눅스 웹서버 설치 기초 완전 정리 (3) | 2025.08.09 |
---|---|
리눅스 사용자 추가하는 법 – 계정 생성부터 권한 설정까지 완벽 정리 (3) | 2025.08.09 |
리눅스 파일 권한 변경하는 법 – 읽기/쓰기/실행권한 쉽게 정리 (2) | 2025.08.08 |
에러 찾기? 보안 확인? 리눅스 로그 확인법 총정리 (3) | 2025.08.08 |
리눅스 해킹 막는 법! 필수 보안 설정 5가지 정리 (1) | 2025.08.07 |