unix mysql 백업 (shell script)

2018.10.14 08:39

엘카 조회 수:530

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

번호 제목 날짜 조회 수
71 vmware with centos 7 secret 2019.08.23 0
70 php-fpm tcp to socket secret 2020.01.25 0
69 my.cnf secret 2019.04.11 1
68 netdata 이용한 centos 모니터링 2020.01.25 452
» mysql 백업 (shell script) file 2018.10.14 530
66 yum install php 7.1 [6] 2018.10.10 559
65 munin 설치 2018.10.13 623
64 certbot apache multiple domain 2019.04.10 808
63 yum install mariadb [2] 2018.10.10 906
62 웹 백업 (쉘 스크립트) file 2018.10.14 1003
61 yum install php-apcu 2019.03.12 1100
60 yum install latest redis file 2019.03.27 1275
59 xe 에디터 컴포넌트 트리거 제거 2019.05.16 1532
58 간단하고 강력한 xe 보안 향상 2014.11.08 1779
57 XE Core 최적화 - html/js/css file 2014.11.07 2083
56 [뻘글] 컴퓨터의 언어와 사람의 기억법 2014.06.24 2152
55 접속하기전에.. 2011.04.01 2278
54 스패머 알려주는 사이트 2014.09.11 2361
53 date — 로컬 날짜/시간을 형식화합니다 2014.07.03 2405
52 75mb 페이지에 lazy load 적용해보기 2014.09.03 2525