매일 정해진 경로의 파일을 압축해서 보관하고, 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 명령어를 사용하여 현재 사용자의 크론탭 설정을 확인할 수 있습니다.

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

Author: 모요
댓글

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

*

©2024 MOYO Blog with DAON Consulting Co,LTD.

CONTACT US

We're not around right now. But you can send us an email and we'll get back to you, asap.

보내는 중입니다..

로그인하세요.

계정 내용을 잊으셨나요 ?