La base de datos mysql realiza regularmente copias de seguridad de la base de datos, elimina los archivos de copia de seguridad hace uno o N días

Copia de seguridad de dos bases de datos CF_DB y CF_TEST_DB

Es muy simple, hay tres pasos:

1: Cree un nuevo directorio en el sistema: / usr / local / BACKUP_SQL

2: agregue el archivo backup_db.sh

El contenido del archivo es el siguiente:

#!/bin/bash
# 一小时备份一次

/usr/local/Mysql/mysql/bin/mysqldump -u root -p'数据库密码' CF_DB > /usr/local/BACKUP_SQL/CF_DB/CF_DB_$(date +%Y%m%d_%H%M%S).sql
/usr/local/Mysql/mysql/bin/mysqldump -u root -p'数据库密码' CF_LOG_DB > /usr/local/BACKUP_SQL/CF_LOG_DB/CF_LOG_DB_$(date +%Y%m%d_%H%M%S).sql


# find /usr/local/BACKUP_SQL/CF_DB -mtime +1 -name "*.sql*"		//查找两天前的,所有名字为.sql的文件
# find /usr/local/BACKUP_SQL/CF_DB -name "*.sql*"				//查找所有名字为.sql的文件

# 删除两天前的备份文件
# 防止系统故障,备份文件全删完了,文件数量必须大于10个才删除
filenum=`find /usr/local/BACKUP_SQL/CF_DB -name "*.sql*" | wc -l`
if [ $filenum -gt 10 ] ; then
filenum=`find /usr/local/BACKUP_SQL/CF_DB -mtime +1 -name "*.sql*" -exec rm -f {} \;`
fi

filenum2=`find /usr/local/BACKUP_SQL/CF_LOG_DB -name "*.sql*" | wc -l`
if [ $filenum2 -gt 10 ] ; then
filenum2=`find /usr/local/BACKUP_SQL/CF_LOG_DB -mtime +1 -name "*.sql*" -exec rm -f {} \;`
fi

  Si no conoce la ubicación de mysqldump, búsquelo globalmente, comando: whereis mysqldump

      

find / usr / local / BACKUP_SQL / CF_DB -mtime +1 -name "*. **" ———— El comando se analiza de la siguiente manera:

       buscar: comando de búsqueda de Linux, el usuario busca archivos con condiciones específicas

  / usr / local / BACKUP_SQL / CF_DB: cualquier directorio que desee limpiar

  -mtime : escritura de oraciones estándar

  +1 0: buscar archivos hace 10 días, donde los números representan la cantidad de días y +30 significa buscar archivos hace 30 días

  "*. *": El tipo de datos que desea buscar, "* .jpg" significa buscar todos los archivos con la extensión jpg, "*" significa buscar todos los archivos, esto se puede usar de manera flexible, por analogía

  -exec: escritura fija

  rm -rf: eliminar archivos a la fuerza, incluidos los directorios

  {} \ ;: escritura fija, un par de llaves + espacio + \

 

3: Agregue tareas de sincronización de Linux a la máquina de respaldo: ingrese el comando: crontab -e

0 */2 * * * sh /usr/local/BACKUP_SQL/backup_db.sh

Guardar y salir: ESC: wq

 

Se acabó, ya terminaste

Por ejemplo, es 2019-08-15 17:48, los archivos de respaldo en su sistema serán los siguientes:

Supongo que te gusta

Origin blog.csdn.net/u013282737/article/details/99646396
Recomendado
Clasificación