#!/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
크론탭에 대한 설명은 아래 링크를 확인.
'스크립트' 카테고리의 다른 글
리눅스 파일 언어셋 변경 (0) | 2020.08.25 |
---|