Copia de seguridad de bases de datos MySQL a Amazon S3 (script de shell)

Copia de seguridad de bases de datos MySQL a Amazon S3 (script de shell)

Un script de shell es una colección de comandos para realizar un trabajo específico. MySQL es un sistema de gestión de bases de datos relacionales ampliamente utilizado en los sistemas Linux. Amazon S3 es un dispositivo de almacenamiento en la nube proporcionado por Amazon Web Services. Es una buena práctica para que el administrador del sistema haga una copia de seguridad de las bases de datos a intervalos regulares y las almacene en una ubicación remota como Amazon S3.

  • Un script bash simple para la copia de seguridad de la base de datos MySQL
  • Un script de bash avanzado para la copia de seguridad de la base de datos MySQL

Este tutorial contiene un script de shell que crea una copia de seguridad de bases de datos MySQL y los sube a los cubos de Amazon S3. También puede usar este script de shell para hacer una copia de seguridad de las bases de datos Mariadb o Amazon Aurora (compatible con MySQL).

Copia de seguridad de bases de datos MySQL a S3

Use el siguiente tutorial paso a paso para hacer una copia de seguridad de las bases de datos MySQL y cárguelas en el cubo de Amazon S3.

1. Instalar AWS CLI

Para usar este script, el sistema debe tener instalado AWS CLI.

https: // tecadmin.net/instalación-aws-cli-in-linux/

2. Crear cubo S3

Inicie sesión en la consola de administración de AWS y cree un nuevo cubo S3.

Alternativamente, también puede crear un cubo S3 a través de AWS CLI. El comando será como:

AWS S3API CREATE BUCKET--Bucket S3-Bucket-Name-Region US-East-1  

Simplemente reemplace el nombre del cubo y la región.

3. Shell script para hacer una copia de seguridad de la base de datos MySQL a S3

Copie el script de shell a continuación en un archivo como DB-Backup.mierda. Este script usa mysqldump Comando para crear copias de seguridad de bases de datos. Luego usa gzip comandar para archivar archivos de copia de seguridad y finalmente usar AWS Comando para cargar archivos de copia de seguridad en Amazon S3 Bucket.

Crear un archivo como /Backup/scripts/s3-backup-mysql.mierda En editar su editor de texto favorito. Luego agregue el contenido a continuación:

#!/usr/bin/env Bash ####################################### ########################### ################## ############################################## ### ### #### Autor: Rahul Kumar ##### Sitio web: https: // tecadmin.neto #### ############################################# ########################## #################### ############################################## # # Establecer el nombre de nombre de la carpeta con fecha (2022-05-28) date_format = $ (fecha +"%y-%m-%d") # credenciales del servidor mysql mysql_host = "localhost" mysql_port = "3306" mysql_user = " Usuario "mysql_password =" contraseña " # ruta al directorio de copia de seguridad local local_backup_dir ="/backup/dbbackup " # establecer el nombre del cubo s3 y la ruta del directorio s3_bucket_name =" s3-bucket-name "S3_bucket_path =" Copia de seguridad/db-backup " # número de de Out of of of of of of of of of of of of of of of of offain Días para almacenar archivos de respaldo locales de respaldo de Backup_etrain_days = 30#Use una única base de datos o Nombres de datos de la base de datos separados de espacio bases de datos = "DB1 DB2 DB3" ##### No cambie por debajo de esta línea Mkdir -p $ Local_Backup_dir/$ Date_Format Local_Dir = $ Local_backup_dir/$ date_format remoto_dir = s3: // $ s3_bucket_name/$ s3_bucket_path para db en $ databases; hacer mysqldump \ -H $ mysql_host \ -p $ mysql_port \ -u $ mysql_user \ -p $ mysql_password \ - -single -transaction $ db | gzip -9> $ local_dir/$ db -$ date_format.sql.GZ AWS S3 CP $ local_dir/$ db-$ date_format.sql.gz $ remoto_dir/ $ date_format/ done dbdeldate = "date +" $ date_format "--date =" $ backup_etain_days hace días "" if [[ ! -z $ local_backup_dir]; Entonces cd $ local_backup_dir if [ ! -z $ dbdeldate] && [-d $ dbdeldate]; Entonces rm -rf $ dbdeldate fi fi ## El script termina aquí
12345678910111213141516171819202122232425262728293031323333536373839404142434444454644849555553545555585960616622222222222#!/usr/bin/env Bash ####################################### ############################################## ############################################## ######### Autor: Rahul Kumar ##### Sitio web: https: // tecadmin.neto################################################# ############################################## ############################################## # # Establecer el nombre del nombre de la carpeta con fecha (2022-05-28) date_format = $ (fecha +"%y-%m-%d") # mysql servidor credencialsmysql_host = "localhost" mysql_port = "3306" mysql_user = "user user "Mysql_password =" contraseña " # ruta a la copia de seguridad local DirectoryLocal_Backup_dir ="/Backup/DbBackup " # Establecer el nombre del cubo S3 y las rutas de directorio3_bucket_name =" S3-Bucket-Name "S3_Bucket_Path =" Copia Archivos de copia de seguridad locales Backup_etrain_days = 30#Use una única base de datos o la base de datos separada de espacio NamesDatabases = "db1 db2 db3" ##### No cambie debajo de esta línea mkdir -p $ local_backup_dir/$ date_format local_dir = $ local_backup_dir /$ Date_format remoto_dir = s3: // $ s3_bucket_name/$ s3_bucket_path para db en $ databases; hacer mysqldump \ -H $ mysql_host \ -p $ mysql_port \ -u $ mysql_user \ -p $ mysql_password \ - -single -transaction $ db | gzip -9> $ local_dir/$ db -$ date_format.sql.GZ AWS S3 CP $ local_dir/$ db-$ date_format.sql.gz $ remoto_dir/$ date_format/ded dbdeldate = 'date +"$ date_format" --date = "$ backup_etain_days hace días" if [[ ! -z $ local_backup_dir]; Entonces cd $ local_backup_dir if [ ! -z $ dbdeldate] && [-d $ dbdeldate]; Entonces rm -rf $ dbdeldate fifi ## script termina aquí

Actualice todas las variables necesarias según el entorno de su sistema.

4. Cómo ejecutar el script de respaldo

Establezca el permiso Ejecutar (x) en el script:

CHMOD +X S3-Backup-Mysql.mierda  

Luego ejecuta el script de copia de seguridad.

./s3-backup-mysql.mierda  

5. Programe el script de copia de seguridad para ejecutar diariamente

Programe el script de shell usando crontab para ejecutarse diariamente.

crontab -e  

Agregue la configuración a continuación al final del archivo:

# Ejecutar diariamente @ 2am 0 2 * * */backup/scripts/s3-backup-mysql.sh> /dev /null 2> y 1 

Guarde el archivo y cierre.

Conclusión

Este tutorial le proporciona un script de shell para hacer una copia de seguridad de las bases de datos MySQL y cargarlas en el cubo de Amazon S3. Eso podría ser útil para usted automatizar las copias de seguridad de la base de datos y guardar una copia en el almacenamiento en la nube.