#!/bin/bash <-- 스크립트 시작 구문

#백업 날짜
date=`date +%Y%m%d`

#백업 파일이 저장될 경로
db_backup_path="/backup/mysql_back"
home_backup_path="/backup/home_back"

#db 계정 정보
db_user="DB계정"
db_pw="패스워드"

#db 목록
mysqlshow="mysqlshow"


# db 전체 백업
##mysqldump -u$db_user   -p ${db_pw}  --all-databases > $db_backup_path/$date.sql     # /usr/bin/mysqldump 명령어는 찾을 수 없다고 나옴.

 

# db 목록 추출
db_lists=`$mysqlshow -u${db_user} -p${db_pw} | egrep -v "Databases|test|^\+" | awk '{print $2}'`

 

#실행 날짜의 db 백업 디렉토리 생성
if [ ! -d $db_backup_path/$date ]; then
        mkdir $db_backup_path/$date
fi

 

#실행 날짜의 home 백업 디렉토리 생성
if [ ! -d $home_backup_path/$date ]; then
        mkdir $home_backup_path/$date
fi

# home 백업 실행
tar -czvpf $home_backup_path/$date/$date.home.tar.gz -C / home

# db 별로 백업 실행
for db_lists in $db_lists; do

 mysqldump -u $db_user -p${db_pw} --skip-lock-tables $db_lists > $db_backup_path/$date/$db_lists.sql

done

#오래된 백업 파일 삭제
find $home_backup_path/ -type f -mtime +0 | sort | xargs rm -rf
find $db_backup_path/ -type f -mtime +0 | sort | xargs rm -rf


## sql파일을 tar로 압축.(공간 절약의 효율은 미미함)
#tar czvpf $db_backup_path/$date.tar.gz -C $db_backup_path $date
~                                                                    

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------------

(cron 로그 남기기)

* * * * * /var/cron/test.sh >> /var/log/test.log 2>&1

 

크론탭에 대한 설명은 아래 링크를 확인.

https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EB%B0%98%EB%B3%B5_%EC%98%88%EC%95%BD%EC%9E%91%EC%97%85_cron,_crond,_crontab

'스크립트' 카테고리의 다른 글

리눅스 파일 언어셋 변경  (0) 2020.08.25

+ Recent posts