Copia de seguridad de subbase de datos
Crea un guión y escribe.
[scripts raíz@localhost]# vim bak_db_v1.sh
#!/bin/bash
ruta de respaldo
bak_path=/copia de seguridad/db
contraseña de cuenta
mysql_cmd='-uroot -pRedHat@123'
Bases de datos para excluir
excluir_db='esquema_información|mysql|esquema_rendimiento|sys'
Verifique si la ruta de respaldo existe, créela si no existe
[ -d ${bak_path} ] || mkdir -p ${bak_path}
Extraiga la base de datos de la que se necesita hacer una copia de seguridad y escríbala en el archivo (dbname)
mysql ${mysql_cmd} -e 'mostrar bases de datos' -N | egrep -v "${exclude_db}" > nombrebd
Archivos en bucle, copia de seguridad para cada biblioteca.
mientras lee la línea
hacer
mysqldump ${mysql_cmd} -B $línea | gzip > ${bak_path}/${line}_$(fecha +%F).sql.gz
hecho <nombrebd
eliminar archivos temporales
rm -f nombrebd
Copia de seguridad de la tabla
#!/bin/bash
ruta de copia de seguridad
bak_path=/backup/db
cuenta, contraseña
mysql_cmd='-uroot -pRedHat@123'
base de datos a excluir
exclusion_db='information_schema|mysql|performance_schema|sys'
para extraer la tabla de datos a respaldar arriba y escríbalo en el archivo (tbname)
mysql -uroot -pRedHat@123 -N -e'show table from abc' > tbname
loop file, haga una copia de seguridad de cada tabla
mientras lee la línea ,
coloque
la tabla de datos en la base de datos correspondiente a continuación.
[ -d ${bak_path}/abc ] || mkdir -p ${bak_path}/abc
mysqldump ${mysql_cmd} abc $line | gzip > ${bak_path}/abc/abc_${line}_$(fecha + % F).sql.gz
hecho <tbname
eliminar archivo temporal
rm -f tbname