Linux에서 데이터베이스를 백업하고 지정된 시간보다 오래된 오래된 데이터를 자동으로 삭제합니다.

넌센스 말하지 말고 그냥 대본으로가

1. mysql에 지정된 데이터베이스를 자동으로 백업하고 지정된 일 수 동안 데이터를 보관합니다.

#!/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. 스크립트에 실행 권한을 추가하는 것을 잊지 마십시오.

chmod +x /data/script/xAutoBackupMysqlForMydb.sh

3. 예약 된 작업에 스크립트 추가

crontab -e

그런 다음 아래 계획을 작성하십시오. 

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

-------------- 종료 ------------------ 2020 년 5 월 10 일 22:17:09 ------- --------------------

------------------- 평소처럼 치킨 수프 한 그릇 보내기 : 서두르세요! 파도! -------------------------------

추천

출처blog.csdn.net/xoofly/article/details/106043431