Utilice la función de tarea de sincronización crontab propia de Linux para ejecutar scripts que respaldan la base de datos con regularidad
Lista de funciones de implementación
- Apoyo
- Copia de seguridad programada
- Comprimir el archivo de respaldo
- Eliminar archivos de respaldo caducados
- Restaurar archivos de respaldo
Volcado de copia de seguridad de datos
La base de datos tiene un comando para exportar los datos y la estructura en la base de datos, que es una copia de seguridad.
La restauración de los datos respaldados eliminará la tabla de los datos originales y la reconstruirá, y luego insertará los datos en la copia de respaldo.
Este punto debe tenerse en cuenta: si hay más datos antes de la restauración que la copia de seguridad, no habrá más datos después de la restauración.
Copia de seguridad y mysqldump -h -u [用户名] -p [库名] > [导出的.sql 文件]
restauración mysql -u [用户名] -p [库名] < [导出的.sql 文件]
script de shell
Para completar un programa de respaldo completamente funcional, se necesitan scripts de shell.
Queremos que se haga una copia de seguridad de este script en la ruta especificada y se comprima y almacene, hasta 30, más de 30 elimine el más antiguo y registre el registro de operaciones.
No se dice nada, las palabras están en el guión, ¡hazlo!
#用户名
username=root
#密码
password=nicai
#将要备份的数据库
database_name=l_love_you
#保存备份文件最多个数
count=30
#备份保存路径
backup_path=/app/mysql_backup
#日期
date_time=`date +%Y-%m-%d-%H-%M`
#如果文件夹不存在则创建
if [ ! -d $backup_path ];
then
mkdir -p $backup_path;
fi
#开始备份
mysqldump -u $username -p$password $database_name > $backup_path/$database_name-$date_time.sql
#开始压缩
cd $backup_path
tar -zcvf $database_name-$date_time.tar.gz $database_name-$date_time.sql
#删除源文件
rm -rf $backup_path/$database_name-$date_time.sql
#更新备份日志
echo "create $backup_path/$database_name-$date_time.tar.gz" >> $backup_path/dump.log
#找出需要删除的备份
delfile=`ls -l -crt $backup_path/*.tar.gz | awk '{print $9 }' | head -1`
#判断现在的备份数量是否大于阈值
number=`ls -l -crt $backup_path/*.tar.gz | awk '{print $9 }' | wc -l`
if [ $number -gt $count ]
then
#删除最早生成的备份,只保留count数量的备份
rm $delfile
#更新删除文件日志
echo "delete $delfile" >> $backup_path/dump.log
fi
Como el nombre sugiere al script, desde un hermoso nombre dump_mysql.sh
hasta el script con permiso de ejecución chmod +x dump_mysql.sh
, después de ejecutar el archivo de script hay un
método de ejecución verde viable : ./ más el nombre del script
chmod命令参数含义--
+ 代表添加某些权限
x 代表可执行权限
Crontab
Crontab es una función de tarea cronometrada que viene con Linux y podemos usarla para ejecutar un dump_mysql.sh
script cada mañana .
Uso de Crontab:
- crontab -l Ver la lista de tareas programadas
- crontab -e editar (agregar / eliminar) tareas de tiempo
Ejecute el comando crontab -e para abrir un texto editable, ingrese la 00 01 * * * /app/dump_mysql.sh
preservación y salga para completar la adición.
Explicación del contenido:
00 01 * * * /app/dump_mysql.sh
Mírelo en dos partes: la
primera parte 00 01 * * *
es el período de la tarea cronometrada y la segunda parte es /app/dump_mysql.sh
el momento de hacer las cosas.
La expresión de período consta de cinco marcadores de posición, que representan: minuto, hora, día, mes, semana
Los marcadores de posición se utilizan para *
indicar 每
que se utilizan en el primer dígito cada minuto, el segundo dígito es cada hora, etc. Los
marcadores de posición se utilizan para 具体数字
indicar 具体时间
que 10 se utiliza en el primer dígito para significar 10 puntos, y cuando se utiliza en el tercer dígito, significa 10. tales
marcadores de posición de empuje -
representan 区间
, por 5-7 en los primeros 5 se asigna a siete puntos con un quinto lugar en la semana representa 5 al domingo, y así sucesivamente los
marcadores de posición /
representan 间隔
, 5-10 / 2 con En primer lugar, es de 5 minutos a 10 minutos, y el intervalo es de 2 minutos. En segundo lugar, se usa para indicar el intervalo de 2 horas de 5 a 10, y así sucesivamente.
Se usan marcadores de posición para ,
indicar 列表
. 5,10 en primer lugar es de 5 minutos y 10 puntos, usados en el cuarto lugar para indicar mayo y octubre, y así sucesivamente
Se mejorará y optimizará más adelante.
Referencia:
https://segmentfault.com/a/1190000023285648