unix mysql 백업 (shell script)

2018.10.14 08:39

엘카 조회 수:697

#!/bin/bash
# Simple script to backup MySQL databases

# Parent backup directory
backup_parent_dir="/root/backup"

# MySQL settings
mysql_user="root"
mysql_password=""

# Read MySQL password from stdin if empty
if [ -z "${mysql_password}" ]; then
  echo -n "Enter MySQL ${mysql_user} password: "
  read -s mysql_password
  echo
fi

# Check MySQL password
echo exit | mysql --user=${mysql_user} --password=${mysql_password} -B 2>/dev/null
if [ "$?" -gt 0 ]; then
  echo "MySQL ${mysql_user} password incorrect"
  exit 1
else
  echo "MySQL ${mysql_user} password correct."
fi

# Create backup directory and set permissions
#backup_date=`date +%Y_%m_%d_%H_%M`
 backup_date=`date +%Y%m%d-%H%M`
#backup_dir="${backup_parent_dir}/${backup_date}"
 backup_dir="${backup_parent_dir}"
echo "Backup directory: ${backup_dir}"
mkdir -p "${backup_dir}"
chmod 700 "${backup_dir}"

# Get MySQL databases
mysql_databases=`echo 'show databases' | mysql --user=${mysql_user} --password=${mysql_password} -B | sed /^Database$/d`

# Backup and compress each database
for database in $mysql_databases
do
  if [ "${database}" == "information_schema" ] || [ "${database}" == "performance_schema" ] || [ "${database}" == "mysql" ]; then
        # 기본 경로는 백업하지 않기로 additional_mysqldump_params="--skip-lock-tables"
continue
  else
        additional_mysqldump_params=""
  fi
  echo "Creating backup of \"${database}\" database"
  mysqldump ${additional_mysqldump_params} --user=${mysql_user} --password=${mysql_password} ${database} | gzip > "${backup_dir}/${backup_date}_${database}.sql.gz"
  chmod 600 "${backup_dir}/${backup_date}_${database}.sql.gz"
done

 

굿

 

링크 원본: {백업경로}/{백업날짜}/{DB}.gz

내 수정본: {백업경로}/{백업날짜}.sql.gz

번호 제목 날짜 조회 수
21 유닉스 계정 관리 2013.10.15 14650
20 PHP 설치 file 2010.05.11 15057
19 솔라리스 mount options 2013.10.06 15323
18 ftp file 2010.07.23 15443
17 리눅스 자동 시작 file 2010.05.21 15895
16 ssh 로그인 제한 2011.04.05 16470
15 Apache 설치 file 2010.05.11 16658
14 CentOS 6.2 다운로드 / 설치 [1] file 2012.04.15 17029
13 MySQL 설치 file 2010.05.11 17280
12 Zend Optimizer + eAccelerator + Suhosin file 2010.05.11 18249
11 Linux 설치시 파티션 관리 file 2012.05.12 19206
10 php + ssh2 file 2010.06.05 20200
9 sAPM file 2010.05.12 20261
8 Lighttpd 설치 file 2010.05.11 20679
7 CentOS 6 - MySQL 5.5 설치 [1] file 2012.04.15 21739
6 Linux Memory 사용량 file 2012.05.16 25005
5 리눅스 계정 생성/변경 [67] 2011.04.02 29129
4 CentOS 6 - Apache 2.4.1 컴파일 / 보안 설정 [1] 2012.04.15 30240
3 마인크래프트 조합법 1 file 2011.04.01 38377
2 VPS (가상 호스팅) 비교 file 2010.05.12 62201