unix mysql 백업 (shell script)

2018.10.14 08:39

엘카 조회 수:641

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

번호 제목 날짜 조회 수
72 vmware with centos 7 secret 2019.08.23 0
71 php-fpm tcp to socket secret 2020.01.25 0
70 net::ERR_CONNECTION_REFUSED secret 2021.10.11 0
69 my.cnf secret 2019.04.11 1
» mysql 백업 (shell script) file 2018.10.14 641
67 yum install php 7.1 [6] 2018.10.10 644
66 munin 설치 2018.10.13 740
65 yum install mariadb [2] 2018.10.10 1086
64 웹 백업 (쉘 스크립트) file 2018.10.14 1133
63 netdata 이용한 centos 모니터링 2020.01.25 1139
62 certbot apache multiple domain 2019.04.10 1205
61 yum install php-apcu 2019.03.12 1374
60 yum install latest redis file 2019.03.27 1570
59 간단하고 강력한 xe 보안 향상 2014.11.08 1825
58 XE Core 최적화 - html/js/css file 2014.11.07 2127
57 [뻘글] 컴퓨터의 언어와 사람의 기억법 2014.06.24 2195
56 접속하기전에.. 2011.04.01 2332
55 스패머 알려주는 사이트 2014.09.11 2408
54 75mb 페이지에 lazy load 적용해보기 2014.09.03 2556
53 date — 로컬 날짜/시간을 형식화합니다 2014.07.03 2572