📌 요구사항
#!/bin/bash
SOURCE="/home/user/data"
BACKUP_DIR="/home/user/backup"
DATE=$(date +%Y%m%d)
# 백업 디렉토리 없으면 생성
if [ ! -d "$BACKUP_DIR" ]; then
echo "백업 디렉토리가 없어서 새로 생성합니다."
mkdir -p "$BACKUP_DIR"
fi
# 백업 실행
tar -czf "$BACKUP_DIR/backup_$DATE.tar.gz" "$SOURCE"
echo "✅ 백업 완료: $BACKUP_DIR/backup_$DATE.tar.gz"
# 7일 이상 된 오래된 백업 삭제
find "$BACKUP_DIR" -name "backup_*.tar.gz" -mtime +7 -exec rm {} \\;
echo "🗑 오래된 백업 파일 삭제 완료"
💡 포인트
[ ! -d "$BACKUP_DIR" ] → 디렉토리 없으면 생성find … -mtime +7 → 7일 지난 파일 삭제📌 요구사항
/var/log/syscheck.log에 기록#!/bin/bash
LOG_FILE="/var/log/syscheck.log"
CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print 100 - $8}') # idle 퍼센트 제외
MEMORY=$(free | awk '/Mem/{printf("%.0f"), $3/$2 * 100}') # 사용 메모리 %
echo "[$(date)] CPU: $CPU% Memory: $MEMORY%" >> $LOG_FILE
if (( $(echo "$CPU > 80" | bc -l) )); then
echo "⚠ CPU 사용률이 80% 이상입니다! 현재: $CPU%" | tee -a $LOG_FILE
fi
if [ "$MEMORY" -ge 90 ]; then
echo "⚠ 메모리 사용률이 90% 이상입니다! 현재: $MEMORY%" | tee -a $LOG_FILE
fi
💡 포인트
awk + bc → 실수 연산