1. 개요
매번 데이터 베이스 백업이 귀찮기도하고, 생각해보면 자주 깜박깜박한다.
2. 설명
1) EOF를 이용해서 mysql CLI의 데이터를 Shell 변수에 저장한다.
2) 변수 앞 뒤에 ( ) 괄호를 붙여주면 Array 타입으로 변경되어 알맞게 들어간다.
3) 컬럼 네임인 : Database, ~schema 데이터베이스는 성능 및 권한과 관련 된 필드이기 때문에 백업 대상에서 제외한다.
4) DUMP 시행시 function nowdate 을 이용하여 실시간 시간 정보를 가져와서 네이밍 한다.
※ 참고글
더보기
[Bash][SSH][SH][ShellScript] 현재 시간 가져오기 & Functional
https://devs.tistory.com/54
3. 코드
#!/bin/bash
DB_LIST=(`mysql <<EOF
show databases;
EOF
`)
for DB in "${DB_LIST[@]}"
do
echo "DB NAME -- ${DB}"
if [ "Database" == "${DB}" ] || [ "information_schema" == "${DB}" ] || [ "performance_schema" == "${DB}" ]; then
echo "SKIP -- Database Column Name"
continue;
fi
echo "DB BACKUP TARGET -- ${DB}"
mysqldump ${DB} > `nowdate`"_"${DB}".sql"
done
'Linux' 카테고리의 다른 글
[Apache][PHP][PHP-FPM] PHP 설치 (0) | 2022.04.05 |
---|---|
[스카우터][Scouter] 내가 사용하는 APM Settings (0) | 2022.03.29 |
[Bash][SSH][SH][ShellScript] 현재 시간 가져오기 & Functional (0) | 2022.03.27 |
[웹서버][SSL] 웹서버 SSL 테스트 사이트 (0) | 2022.03.20 |
[오라클][Oracle] 테이블 스페이스 생성 방법 (자동화) (0) | 2022.03.16 |