MOYOMOYO
모요 · PERSONAL BLOG

MOYO

생각과 경험을 기록하는 공간입니다.

← 글 목록

파일 압축 쉘 스크립트로 백업 스케쥴 만들기

모요조회 3댓글 0

매일 정해진 경로의 파일을 압축해서 보관하고, 3일이 지난 백업은 자동 삭제하는 백업 스케쥴을 만들어보려고 합니다.

#!/bin/bash

# 날짜 포맷
DATE=$(date +%Y%m%d)
BACKUP_DIR=/home/backup/

# 백업 디렉토리 존재 여부 확인 및 생성
if [ ! -d "$BACKUP_DIR" ]; then
  mkdir -p $BACKUP_DIR
fi

# 로그 파일
LOGFILE=$BACKUP_DIR/backup_$DATE.log

# 블로그 디렉토리 백업
tar -czvf $BACKUP_DIR$DATE".blog.tar.gz" /home/blog >> $LOGFILE 2>&1

# 3일 이상된 백업 파일 삭제
find $BACKUP_DIR -type f -ctime +3 -exec rm -f {} \; >> $LOGFILE 2>&1

# 완료 로그 메시지
echo "Backup and cleanup completed on $DATE" >> $LOGFILE
  1. 스크립트가 실행되면 정해진 경로의 파일을 압축 후 정해진 백업 디렉토리에 생성
  2. 백업 디렉토리 확인 및 생성: if [ ! -d "$BACKUP_DIR" ]; then mkdir -p $BACKUP_DIR; fi
  3. 로그 파일 추가: 백업 및 삭제 작업의 로그를 $BACKUP_DIR/backup_$DATE.log 파일에 기록합니다.
  4. -type f 옵션 추가: find 명령에서 파일만 선택하도록 -type f 옵션을 추가하여 디렉토리나 다른 유형의 항목을 잘못 삭제하는 것을 방지합니다.
  5. 3일 이상된 백업 파일은 자동 삭제

이렇게 하면 스크립트가 보다 명확하고 오류가 발생할 가능성이 줄어듭니다. 압축 및 삭제 작업이 수행될 때 로그 파일을 확인하여 어떤 문제가 발생했는지 추적할 수 있습니다.

이제 crontab 에 등록 시켜서 백업을 매일 새벽 2시에 실행하게 합니다.

크론탭을 이용하여 매일 오전 2:00에 backup.sh 스크립트를 실행하는 방법은 다음과 같습니다:

  1. 크론탭 열기: 터미널에서 다음 명령어를 입력하여 현재 사용자의 크론탭을 편집합니다.

    crontab -e

    이 명령어를 실행하면 기본 텍스트 편집기가 열리며, 크론탭 설정을 편집할 수 있습니다.
  2. 작업 추가하기: 열린 편집기에서 아래와 같이 작업을 추가합니다.

    0 2 * * * bash /path/to/backup.sh

    여기서 각 필드의 의미는 다음과 같습니다:
    • 0: 분 (0분)

    • 2: 시 (2시)

    • *: 모든 날짜

    • *: 모든 월

    • *: 모든 요일

    따라서 위의 설정은 매일 자정 2시 (오전 2시)에 bash /path/to/backup.sh 명령어를 실행하도록 크론탭에 등록하는 것입니다.
  3. 저장하고 나가기: 설정을 완료한 후에는 편집기를 종료하고 변경사항을 저장합니다. 일반적으로는 텍스트 편집기에서 Ctrl + X를 누르고 저장 여부를 묻는 메시지가 나오면 Y를 입력한 후 엔터를 누릅니다.

이제 설정한 크론탭 작업은 매일 오전 2:00에 backup.sh 스크립트를 실행하게 됩니다. 설정이 제대로 되었는지 확인하려면 crontab -l 명령어를 사용하여 현재 사용자의 크론탭 설정을 확인할 수 있습니다.

#파일백업 #파일압축 #백업스케쥴 #백업정책

로그인 후 좋아요

댓글 0

등록된 댓글이 없습니다.