🧀 폴더 생성 및 권한 수정
- 755는 앞자리 수부터 사용자, 그룹, 다른 사용자를 의미한다.
- 7은 사용자에게 읽기(r), 쓰기(w), 실행(x) 권한을 준다.
- 그룹과 다른 사용자에게는 읽기(r), 실행(x) 권한을 준다.
mkdir db_backup
chmod 755 db_backup
d | r | w | x | r | - | x | r | - | x |
디렉토리 | 읽기(4) | 쓰기(2) | 실행(1) | 읽기(4) | 0 | 실행(1) | 읽기(4) | 0 | 실행(1) |
🍍 스크립트 파일 생성 및 작성
- 백업 파일명은 년도, 달, 일, 시, 분, 초가 들어가게 했다.
- 위에서 생성한 폴더 아래에 백업된 파일이 생성된다.
- 백업 파일이 생성된지 14일이 지나면 그 파일은 삭제된다.
- -p와 {비밀번호} 사이에 공백이 있으면 안 된다.
- 스크립트를 작성한 후 sh {스크립트 파일명}으로 실행해보는 게 좋다. 권한 문제가 있으면 앞에 sudo 붙여서 실행한다.
- 파일명은 date +와 "%Y%m%d%H%M%S"` 사이에 공백이 없어야 날짜 및 시간이 출력되는 것에 주의하자.
vi db_backup/backup.sh
#! /bin/bash
FILE_NAME=backup_`date +"%Y%m%d%H%M%S"`
BACKUP_DIR=/home/ubuntu/db_backup/
mysqldump -u {계정명} -p{비밀번호} --databases {데이터베이스명} > $BACKUP_DIR$FILE_NAME.sql
find $BACKUP_DIR -ctime +14 -exec rm -f {} \;
✨ 생성한 스크립트 파일에 권한 부여
chmod 100 db_backup/backup.sh
🐒 crontab을 이용한 작업 스케줄러
crontab -e
일 주일에 한 번 백업이 되도록 했다.
이미지에 보이는 명령문은 매주 월요일 새벽 2시에 실행되는 것을 의미한다.
0 | 02 | * | * | 1 |
(0 ~ 59)분 | (0 ~ 23)시 | (1~31)일 | (1 ~ 12)월 | (0 ~ 6)요일 |
crontab -l
작업 리스트들을 출력한다.
🐛 문제 해결
백업 파일이 안 생겨서 스크립트에 작성했던 명령문을 실행하니까 비밀번호를 입력하라고 떴다.
-p {비밀번호}로 작성했기 때문에 프롬프트로 비밀번호를 직접 입력해야 하는 것이다.
작성한 비밀번호 그대로 실행되게 하려면 공백없이 -p{비밀번호}를 해준다.
FILE_NAME=backup_`date +"%Y%m%d%H%M%S"` # 올바른 라인
FILE_NAME=backup_`date + "%Y%m%d%H%M%S"` # 틀린 라인
자세히 보면 date + 뒤에 공백이 없어야 날짜 및 시간이 정확하게 출력된다.
👇 참고
https://wildeveloperetrain.tistory.com/208
반응형
'Linux' 카테고리의 다른 글
[Ubuntu] Docker MySQL 설치 (0) | 2024.04.23 |
---|---|
Ubuntu에서 OpenJDK 제거 (0) | 2024.01.23 |
cron을 이용한 스케줄링 (0) | 2023.12.29 |