목차
Summary
오늘은 리눅스 환경에서 간단한 백업 스크립트를 만들어 Cron 동작을 통해 자동으로 특정 디렉터리를 백업하는 내용에 대해 다뤄보겠습니다. 특히, 주요한 서버에서 자주 발생하는 작업 중 하나인 백업에 초점을 맞추어 보겠습니다.
매일 디렉토리를 백업하고, 일주일마다 이전 백업을 삭제하는 스크립트를 만들어 7일간의 백업을 진행해보겠습니다.
스크립트 작성 및 설명
1) 백업할 디렉터리와 백업파일을 저장할 디렉터리를 지정합니다 :
# 백업할 디렉토리 설정
SOURCE_DIR=/home/user/data
# 백업 파일을 저장할 디렉토리 설정
BACKUP_DIR=/home/user/backup
2) 백업 파일에 사용될 날짜 데이터를 저장합니다 :
# 현재 날짜 가져오기
DATE=$(date +%Y%m%d)
DATE 변수는 'YYYYMMDD' 형식의 현재날짜 데이터를 저장하게 됩니다.
3) 백업 파일의 이름을 설정하고 백업을 진행합니다 :
# 백업 파일 이름 설정
BACKUP_NAME=backup_$DATE.tar.gz
# 백업 실행
tar -czf $BACKUP_DIR/$BACKUP_NAME $SOURCE_DIR
tar -czf [경로/파일이름] [백업할 파일] 명령으로 압축하여 백업 실행
4) 백업 디렉터리에서 1주일이 지난 백업파일을 제거 :
# 일주일 이전 백업 삭제
find $BACKUP_DIR -name "backup_*.tar.gz" -type f -mtime +6 -exec rm {} \;
전체 스크립트
아래 코드는 매일 /home/user/data 디렉터리를 백업하고, 일주일 이전의 백업파일을 삭제해주는 스크립트입니다.
#!/bin/bash
# 백업할 디렉토리 설정
SOURCE_DIR=/home/user/data
# 백업 파일을 저장할 디렉토리 설정
BACKUP_DIR=/home/user/backup
# 현재 날짜 가져오기
DATE=$(date +%Y%m%d)
# 백업 파일 이름 설정
BACKUP_NAME=backup_$DATE.tar.gz
# 백업 실행
tar -czf $BACKUP_DIR/$BACKUP_NAME $SOURCE_DIR
# 일주일 이전 백업 삭제
find $BACKUP_DIR -name "backup_*.tar.gz" -type f -mtime +6 -exec rm {} \;
Crontab 등록하여 자동으로 실행
이렇게 만든 스크립트를 주기적으로 실행하여 백업을 하고자 한다면 cron 작업 스케줄러를 사용할 수 있습니다.
매일 00시 00분에 주기적으로 실행되도록 설정해보겠습니다.
1) 터미널에서 `crontab -e` 명령을 입력합니다
2) 아래와 같이 입력 후 저장합니다
0 0 * * * /path/to/your/script.sh
마지막으로, `chmod +x /path/to/your/script.sh` 명령으로 스크립트의 실행 권한을 부여 합니다.
위 내용을 통하여 간단한 백업 스크립트를 만들고 Cron 스케줄러를 이용해서 자동으로
실행하는 방법에 대해 살펴보았습니다. 다음 포스팅에서는 다른 유용한 스크립트를 만들어 보겠습니다.
'Shell Script > Resource Monitoring' 카테고리의 다른 글
(Shell Script) 서버 리소스 사용량 모니터링 (0) | 2023.07.22 |
---|