unix mysql 백업 (shell script)

2018.10.14 08:39

엘카 조회 수:692

#!/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

번호 제목 날짜 조회 수
17 VPS (가상 호스팅) 비교 file 2010.05.12 62200
16 리눅스 계정 생성/변경 [67] 2011.04.02 29125
15 Linux Memory 사용량 file 2012.05.16 24981
14 Linux 설치시 파티션 관리 file 2012.05.12 19203
13 CentOS 6.2 다운로드 / 설치 [1] file 2012.04.15 17027
12 ssh 로그인 제한 2011.04.05 16467
11 리눅스 자동 시작 file 2010.05.21 15892
10 ftp file 2010.07.23 15441
9 솔라리스 mount options 2013.10.06 15318
8 유닉스 계정 관리 2013.10.15 14648
7 솔라리스 디렉토리 2013.10.06 14265
6 putty file 2010.05.21 13464
5 SSL 설치 (Apache) [1] file 2012.04.19 12860
4 계정 자동 생성 [2] file 2012.04.15 10726
3 웹 백업 (쉘 스크립트) file 2018.10.14 1190
2 munin 설치 2018.10.13 785
» mysql 백업 (shell script) file 2018.10.14 692