둘셋 개발!

[Linux] 쉘 스크립트를 작성해야하는 이유 본문

카테고리 없음

[Linux] 쉘 스크립트를 작성해야하는 이유

23 2024. 3. 26. 19:06

본 내용은 'KT 리눅스 쉘 스크립트 프로그래밍 교육'에 기반한 내용입니다.
 

쉘이란

커널을 이용할 수 있는 인터페이스 이다.
OS가 커널을 동작할 수 있게 하는 명령어들을 실행할 수 있는 공간이다.


쉘 스크립트란

연관 명령어들의 집합체이다.
쉘 스크립트를 실행하면 스크립트의 내의 명령어들이 차례대로 실행된다.

 

 

왜 쉘 스크립트를 작성해야할까?

반복적인 작업을 자동화 하기 위해서 이다.
 
개발자가 주기적으로 백업을 해야하거나,
웹 서비스가 다운되면 자동으로 재시작을 해야 하거나
에러로그가 발생했거나
디스크 용량이 일정 퍼센트를 넘으면 개발자에게 이메일을 보내는 등의 작업들을 쉘 스크립트로 작성한 후 설정만 하면 해당 작업을 자동화 할 수 있다.
 
사용 예시 정리
1) 매일 특정 시간에 디렉토리의 내용을 주기적으로 백업하기2) system log의 에러 메시지만 관리자에게 이메일 전송하기3) 시스템의 디스크 사용량을 모니터링 후 이메일 보내기
4) 웹 서버가 다운 되었을 때 자동으로 재시작하기


예시 중에 1번의 경우를 실습했다.
 

매일 특정 시간에 디렉토리의 내용을 주기적으로 백업

개발자가 직접 매번 백업을 하지 않아도 쉘 스크립트를 작성해두고 자동화 시켜놓으면 간편하다.

#!/bin/bash
# 백업할 디렉토리 지정
SOURCE_DIR="autoBackup_from"
# 백업 파일 저장할 디렉토리와 파일명 형식 지정
BACKUP_DIR="autoBackup_to"
DATE=$(date +%Y%m%d) # 현재 날짜를 YYYYMMDD 형식으로 저장
BACKUP_FILE="$BACKUP_DIR/data-$DATE.tar.gz"
# 백업 시작 메시지 출력
echo "Starting backup of $SOURCE_DIR to $BACKUP_FILE..."
# 실제 백업 작업 실행 (tar 명령어로 압축)
tar -czf $BACKUP_FILE $SOURCE_DIR
# 백업 완료 메시지 출력
echo "Backup completed successfully."

autoBackup_from의 디렉토리를 autoBackup_to의 디렉토리로 백업하겠다는 내용이다.
파일이름은 현재 날짜로 했다.
 
현재는 이렇게 폴더구성이 되어있다.

 
파일을 실행하기전 권한을 주고

chmod +x backup_data_uni.sh

 
실행하면
 

 
다음과 같이 autoBackup_to 디렉토리에 현재 날짜로 된 압축파일이 생겼다!