안녕하세요, MJ입니다. 오늘은 고급 스크립트를 작성하여 다양한 기능을 구현하는 방법에 대해 알아보겠습니다. 리눅스에서 스크립트는 자동화와 작업 효율성을 높이는 데 매우 중요한 역할을 합니다. 이번 포스팅에서는 고급 스크립트의 다양한 기능과 실습 예제를 통해 이를 이해하고 활용해 보겠습니다.
1. 고급 스크립트의 필요성
고급 스크립트는 단순한 작업을 자동화하는 것을 넘어, 복잡한 로직과 조건문, 반복문 등을 활용하여 다양한 기능을 구현할 수 있습니다. 이를 통해 시스템 관리와 유지보수를 효율적으로 수행할 수 있습니다.
2. 고급 스크립트 실습
이번 섹션에서는 고급 스크립트를 작성하여 다양한 기능을 구현하는 실습을 진행합니다. 아래 예제를 통해 실습해 보세요.
2.1 파일 백업 스크립트
다음은 특정 디렉토리의 파일을 백업하는 스크립트입니다. 이 스크립트는 날짜를 포함한 백업 파일을 생성합니다.
#!/bin/bash
backup_dir="/path/to/backup"
source_dir="/path/to/source"
date=$(date +%Y%m%d)
if [ ! -d "$backup_dir" ]; then
mkdir -p "$backup_dir"
fi
tar -czf "$backup_dir/backup_$date.tar.gz" "$source_dir"
echo "백업이 완료되었습니다: $backup_dir/backup_$date.tar.gz"
이 스크립트를 실행하면 지정한 소스 디렉토리의 파일이 압축되어 백업 디렉토리에 저장됩니다. 출력 결과는 다음과 같습니다:
백업이 완료되었습니다: /path/to/backup/backup_20230221.tar.gz
2.2 시스템 모니터링 스크립트
다음은 시스템의 CPU와 메모리 사용량을 모니터링하는 스크립트입니다. 이 스크립트는 사용량이 일정 기준을 초과하면 경고 메시지를 출력합니다.
#!/bin/bash
cpu_threshold=80
mem_threshold=80
cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
mem_usage=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
if (( $(echo "$cpu_usage > $cpu_threshold" | bc -l) )); then
echo "경고: CPU 사용량이 ${cpu_usage}%로 설정한 기준 ${cpu_threshold}%를 초과했습니다."
fi
if (( $(echo "$mem_usage > $mem_threshold" | bc -l) )); then
echo "경고: 메모리 사용량이 ${mem_usage}%로 설정한 기준 ${mem_threshold}%를 초과했습니다."
fi
이 스크립트를 실행하면 현재 CPU와 메모리 사용량을 확인하고, 기준을 초과할 경우 경고 메시지를 출력합니다. 출력 예시는 다음과 같습니다:
경고: CPU 사용량이 85%로 설정한 기준 80%를 초과했습니다.
경고: 메모리 사용량이 90%로 설정한 기준 80%를 초과했습니다.
2.3 사용자 입력을 받는 스크립트
아래 스크립트는 사용자로부터 입력을 받아 특정 작업을 수행하는 예제입니다. 사용자가 입력한 이름을 기반으로 인사 메시지를 출력합니다.
#!/bin/bash
echo "이름을 입력하세요: "
read name
echo "안녕하세요, $name님!"
이 스크립트를 실행하면 사용자의 이름을 입력받고 인사 메시지를 출력합니다. 출력 결과는 다음과 같습니다:
이름을 입력하세요:
MJ
안녕하세요, MJ님!
3. 결론
고급 스크립트는 리눅스에서 다양한 기능을 구현하는 데 매우 유용합니다. 이번 포스팅에서 소개한 백업, 시스템 모니터링, 사용자 입력을 받는 스크립트 등의 실습을 통해 고급 스크립트의 활용 방법을 이해하고, 여러분의 작업에 적용해 보시기 바랍니다.
읽어주셔서 감사합니다. 다음 포스팅에서 만나요!