IT/잡다구리

[LINUX] DB dump 백업 shell 파일 관련 정리

월공 2021. 7. 29. 10:48
728x90
300x250
#!/bin/sh

#백업날짜
BACKUP_DAY=`date '+%Y%m%d_%H%M%S_%3N'`
echo ================================
echo MariaDB Backup
echo db_backup.sh process start
echo $BACKUP_DAY
echo ================================
echo

#오늘날짜
TODAY=`date '+%Y%m%d_0040'`
#백업할 경로
BACKUP_DIR=/mysql_backup/$TODAY

#오늘날짜명으로 된 폴더 없을시 생성
echo $BACKUP_DIR
if [ ! -d /mysql_backup/$(date +$TODAY) ]
then
mkdir $BACKUP_DIR
fi


BACKUP_DAY=`date '+%Y%m%d_%H%M%S_%3N'`
echo $BACKUP_DAY

#DB dump 파일 생성하여 백업
echo 'mysqldump -uroot -p[비밀번호] [DB명] > '${BACKUP_DIR}' [DB명]_'$TODAY'.dump'
mysqldump -uroot -p[비밀번호] [DB명] > ${BACKUP_DIR} [DB명]_$TODAY.dump

echo
BACKUP_DAY=`date '+%Y%m%d_%H%M%S_%3N'`
echo $BACKUP_DAY

#DB dump 파일 생성된 폴더들 타서버에도 백업
#echo 'scp -rp -l 100000  '${BACKUP_DIR}' root@[IP주소]:/mysql_backup/'
sshpass -p'[비밀번호]' scp -o StrictHostKeyChecking=no -rp -l 100000  ${BACKUP_DIR} root@[IP주소]:/mysql_backup/

# /mysql_backup 경로 안에 20 으로 시작하는 폴더들 생성일자가 10일 이전것들 모두 삭제
find /mysql_backup/ -name '20*' -ctime +10 -exec rm -rf {} \;

echo ================================
BACKUP_DAY=`date '+%Y%m%d_%H%M%S_%3N'`
echo $BACKUP_DAY
echo db_backup.sh process End
echo ================================

실행은 그냥 해당 디렉토리에서 아래 입력, 

혹시 permission denied 뜰 경우 744 or 755 로 권한 수정후 다시 실행

./db_backup.sh
728x90
300x250