unix mysql 백업 (shell script)

2018.10.14 08:39

엘카 조회 수:477

#!/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 웹 백업 (쉘 스크립트) file 2018.10.14 949
» mysql 백업 (shell script) file 2018.10.14 477
15 munin 설치 2018.10.13 502
14 유닉스 계정 관리 2013.10.15 14447
13 솔라리스 mount options 2013.10.06 15135
12 솔라리스 디렉토리 2013.10.06 14105
11 Linux Memory 사용량 file 2012.05.16 24807
10 Linux 설치시 파티션 관리 file 2012.05.12 19056
9 SSL 설치 (Apache) [1] file 2012.04.19 12635
8 계정 자동 생성 [2] file 2012.04.15 10528
7 CentOS 6.2 다운로드 / 설치 [1] file 2012.04.15 16519
6 ssh 로그인 제한 2011.04.05 16379
5 리눅스 계정 생성/변경 [67] 2011.04.02 26693
4 ftp file 2010.07.23 14028
3 리눅스 자동 시작 file 2010.05.21 15801
2 putty file 2010.05.21 13358
1 VPS (가상 호스팅) 비교 file 2010.05.12 61756