민한의 블로그

linux 셸 스크립트 프로그래밍 응용 본문

인프라/linux

linux 셸 스크립트 프로그래밍 응용

minhan2 2023. 2. 16. 15:47
728x90
반응형

Linux 셸 프로그래밍은 DevOps 및 시스템 관리에서 흔히 발생하는 광범위한 문제를 해결할 수 있습니다.
다음은 쉘 프로그래밍을 통해 해결할 수 있는 몇 가지 문제의 예입니다.

1)반복 작업 자동화

셸 프로그래밍을 사용하면 백업 생성, 소프트웨어 배포 및 테스트 실행과 같은 반복 작업을 자동화할 수 있습니다.
스크립트를 작성하면 이러한 작업을 자동화하고 시간과 노력을 절약할 수 있습니다.
예를 들어 다음은 데이터베이스 백업 생성 프로세스를 자동화하는 스크립트입니다.

#!/bin/bash

# Set variables
DATABASE="mydatabase"
BACKUP_DIR="/var/backups"

# Create backup directory
mkdir -p $BACKUP_DIR

# Backup database
mysqldump -u root -p mydatabase > $BACKUP_DIR/mydatabase.sql

2)데이터 구문 분석 및 처리

셸 프로그래밍을 사용하여 파일, 데이터베이스 및 기타 소스의 데이터를 처리할 수 있습니다.
이는 로그 분석 및 데이터 보고와 같은 작업에 유용합니다.
다음은 로그 파일을 처리하여 각 IP 주소의 요청 수를 계산하는 스크립트의 예입니다.

#!/bin/bash

LOG_FILE="/var/log/nginx/access.log"

# Get list of unique IP addresses
ip_addresses=$(awk '{print $1}' $LOG_FILE | sort | uniq)

# Loop over IP addresses and count requests
for ip_address in $ip_addresses; do
    count=$(grep $ip_address $LOG_FILE | wc -l)
    echo "$ip_address: $count requests"
done

3) 시스템 구성 및 관리

셸 프로그래밍을 사용하여 네트워크 설정, 방화벽 규칙 및 사용자 계정과 같은 시스템 설정을 구성하고 관리할 수 있습니다.
다음은 들어오는 SSH 트래픽을 허용하도록 방화벽을 구성하는 스크립트의 예입니다.

#!/bin/bash

# Allow incoming SSH traffic
sudo ufw allow ssh

# Enable firewall
sudo ufw enable

4)모니터링 및 경고

셸 프로그래밍을 사용하여 CPU 사용량, 디스크 공간 및 네트워크 트래픽과 같은 시스템 메트릭을 모니터링할 수 있습니다.
특정 조건이 충족되면 경고를 보내는 데 사용할 수도 있습니다.
다음은 CPU 사용량을 모니터링하고 사용량이 특정 임계값을 초과하는 경우 이메일 경고를 보내는 스크립트의 예입니다.

#!/bin/bash

# Set threshold for CPU usage
threshold=80

# Get current CPU usage
cpu_usage=$(top -b -n1 | grep "Cpu(s)" | awk '{print $2}' | cut -d. -f1)

# Check if CPU usage exceeds threshold
if [ $cpu_usage -gt $threshold ]; then
    # Send email alert
    echo "CPU usage is above $threshold%" | mail -s "High CPU usage" admin@example.com
fi

이러한 작업을 cron으로 자동화 하면 더욱 편리하게 관리할수 있습니다.

Linux 셸 프로그래밍을 사용하여 cron 및 알림을 통해 작업을 자동화하는 방법의 예입니다.

매일 자정에 데이터베이스 백업을 실행하는 스크립트가 있다고 가정합니다. cron을 사용하여 스크립트가 원하는 시간에 자동으로 실행되도록 예약할 수 있습니다. 다음은 매일 자정에 스크립트를 실행하는 cron 작업의 예입니다.

0 0 * * * /path/to/backup_script.sh

이 cron 작업을 사용하면 자동으로 백업 스크립트가 매일 자정에 실행됩니다.

그러나 백업이 성공했는지 여부를 아는 것이 중요합니다.
이를 위해 알림을 사용하여 백업 실패 시 이메일 경고를 보낼 수 있습니다.
다음은 백업이 실패할 경우 이메일 알림을 보내도록 백업 스크립트를 수정하는 방법의 예입니다.

#!/bin/bash

# Set variables
DATABASE="mydatabase"
BACKUP_DIR="/var/backups"
EMAIL="admin@example.com"

# Create backup directory
mkdir -p $BACKUP_DIR

# Backup database
mysqldump -u root -p mydatabase > $BACKUP_DIR/mydatabase.sql

# Check if backup succeeded
if [ $? -eq 0 ]; then
    echo "Backup succeeded"
else
    echo "Backup failed" | mail -s "Backup failed" $EMAIL
fi

백업이 실패하면 이메일 알림이 전송됩니다.
명령 mail은 이메일을 보내는 데 사용되며 -s옵션은 이메일 제목을 지정하는 데 사용됩니다.
이렇게 수정하면 백업이 실패하면 지정된 이메일 주소로 이메일 알림이 전송되어 담당자에게 문제를 알립니다.
전반적으로 cron 및 알림을 사용하면 작업을 자동화하고 해당 작업의 성공 또는 실패에 대한 피드백을 제공할 수 있습니다.

사실 이렇게까지 리눅스 셸 스크립트를 사용할 일이 없을수도 있습니다.
각각의 인프라 환경에 따라 다르겠지만, 요즘에는 백업과 모니터링 툴들이 많이 있기 때문입니다.
이런것도 가능하다는 참고용이라고 생각해주시면 좋을것 같습니다.

 

 

 

linux 셸 스크립트 프로그래밍 기초

https://minhan2.tistory.com/entry/linux-%EC%85%B8-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8C%85-%EA%B8%B0%EC%B4%88

 

linux 셸 스크립트 프로그래밍 심화

https://minhan2.tistory.com/entry/linux-%EC%85%B8-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%8B%AC%ED%99%94

 

linux 스크립트 프로그래밍 응용
https://minhan2.tistory.com/entry/linux-%EC%85%B8-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%9D%91%EC%9A%A9

728x90
반응형
Comments