Realice una copia de seguridad de la base de datos en Linux y elimine automáticamente los datos antiguos más antiguos que el tiempo especificado

No digas tonterías, solo ve al guión

1. Realice una copia de seguridad automática de la base de datos especificada en mysql y conserve los datos durante el número de días especificado.

#!/usr/bin/env bash

dbName="xMyDB"                    #定义要备份的数据库名
xTime=`date "+%Y-%m-%d_%H:%M:%S"`
bakPath="/data/backup/${dbName}"  #备份路径
saveDay=10          #设定保留多少天的数据

if [ ! -d $bakPath ];then
        mkdir -p $bakPath
fi

if [ -f /data/backup/${dbName}/${dbName}-${xTime}.sql ];then
        rm -rf /data/backup/${dbName}/${dbName}-${xTime}.sql
fi

# 备份zabbix的mysql数据库
mysqldump -u root -pMysqlMiMa $dbName > /data/backup/${dbName}/${dbName}-${xTime}.sql

if [ $? -eq 0 ];then
        echo "$xTime dbname:$dbName backup_success" >> /data/backup/${dbName}/${dbName}.log
else
        echo "$xTime dbname:$dbName backup_failed" >> /data/backup/${dbName}/${dbName}.log
fi

# 只保留$saveDay天的备份数据,在此之前的备份都删掉,以节约磁盘
find $bakPath -mtime +${saveDay} -type f -name \*.sql -exec rm -rf {} \;
#脚本注释:删除备份目录下指定提案书的文件,文件名后缀是.sql的所有文件
#还可以这么写find $bakPath -mtime +${saveDay} -type f -name \*.sql |xargs rm -f

2. No olvide agregar permisos ejecutables al script.

chmod +x /data/script/xAutoBackupMysqlForMydb.sh

3. Agregue el script a la tarea programada.

crontab -e

Luego escribe el plan a continuación 

#每天早上7.59点备份一次mysql
57 07 * * * sh /data/script/xAutoBackupMysqlForMydb.sh

-------------- FIN ------------------ 10 de mayo de 2020 22:17:09 ------ - --------------------

------------------- Envía un plato de sopa de pollo como de costumbre: ¡apúrate! ¡Ondas! -------------------------------

Supongo que te gusta

Origin blog.csdn.net/xoofly/article/details/106043431
Recomendado
Clasificación