번개애비의 라이프스톼일
Linux에서 crontab을 이용하여 MySQL 데이터베이스 정기 백업하기 본문
이전에 windows 환경에서의 mysql 스케줄링 백업에 대해 소개했었는데,
이번에는 리눅스에서 데이터베이스 스케줄링 백업에 대해서 소개한다.
(window 보다 훨~씬 쉬움!)
적당한 경로에 "블라블라.sh"와 같이 Bashshell 파일을 만들어준다.
아래 코드를 참고하여 사용하면 된다.
//샘플코드
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR=/home/sql_backup/
mysqldump -uroot -p'패스워드를입력' --all-databases > $BACKUP_DIR"backup_"$DATE.sql
find $BACKUP_DIR -ctime +7 -exec rm -f {} \;
//예시코드
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR=/home/sql_backup/
mysqldump -uroot -p'1234' --all-databases > $BACKUP_DIR"backup_"$DATE.sql
find $BACKUP_DIR -ctime +7 -exec rm -f {} \;
//데이터베이스명별로 백업 예시
#!/bin/bash
DBUSER="root"
DBPASS="1234"
DATE=$(date +%Y%m%d)
BACKUP_DIR=/home/sql_backup
DBLIST=`mysql --user=$DBUSER --password=$DBPASS -e "SHOW DATABASES;" | tail -n+2`
for THISDB in $DBLIST
do
if [ $THISDB != "information_schema" ] && [ $THISDB != "performance_schema" ] && [ $THISDB != "accounts" ] ; then
mysqldump -u$DBUSER -p$DBPASS $THISDB > $BACKUP_DIR"/"$DATE"_"$THISDB.sql
fi
done
find $BACKUP_DIR -ctime +7 -exec rm -f {} \;
-ctime +7 이라고 되어 있는 곳에 7은 일주일치를 남기고 지우겠다는 것을 의미함으로
실제로 저장하고자 하는 날짜만큼으로 수정하면 된다.
생성한 sh 파일에 적당한 권한을 설정한다.
> chmod 777 ./sql_backup.sh
crontab에 스케줄을 적절한 시간에 설정한뒤, 저장한다.
저장한뒤에는 crond 서비스를 재시작하여 정상작동되도록 하면끝난다.
> crontab -e #스케줄수정
00 06 * * * /home/sql_backup.sh #매일 아침 6시에 실행한다.
> :wq #저장
> service crond restart #크론탭 서비스 재시작
그러면 요로코롬 백업이 된다!
'IT' 카테고리의 다른 글
SPA(Single Page Application)를 개발할때 고려하면 좋은 애니메이션 라이브러리 모음 (0) | 2022.03.30 |
---|---|
Tmap 혹은 Naver 맵에서 화면에 따라 마커를 실시간으로 감추기 (강려크한 대용량 마커 처리) (0) | 2022.03.24 |
RDBMS에서의 Foreign key(외래키)에 대한 고찰 (어쩌다가 우리는 FK를 쓰지 않는가?) (8) | 2022.03.22 |
iOS15 업데이트와 함께 찾아온 인앱브라우저 지옥과 최선 (11) | 2022.03.15 |
도어락 작동 비활성화 버튼 달기 (0) | 2022.01.27 |
Comments