mysqlデータベースは定期的にデータベースをバックアップし、1日またはN日前にバックアップファイルを削除します

2つのデータベースCF_DBとCF_TEST_DBをバックアップします

それは非常に簡単です、3つのステップがあります:

1:システムに新しいディレクトリを作成します:/ usr / local / BACKUP_SQL

2:ファイルbackup_db.shを追加します

ファイルの内容は次のとおりです。

#!/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

  mysqldumpの場所がわからない場合は、グローバルに検索します。コマンド:whereis mysqldump

      

find / usr / local / BACKUP_SQL / CF_DB -mtime +1 -name "*。**" ————コマンドは次のように解析されます。

       find:Linux検索コマンド、ユーザーは指定された条件でファイルを検索します

  / usr / local / BACKUP_SQL / CF_DB:クリーンアップする任意のディレクトリ

  -mtime:標準的な文章の書き方

  +1 0:10日前にファイルを検索します。数字は日数を表し、+ 30は30日前にファイルを検索することを意味します。

  「*。*」:検索するデータの種類。「*。jpg」は拡張子がjpgのすべてのファイルを検索することを意味し、「*」はすべてのファイルを検索することを意味します。これは類推により柔軟に使用できます。

  -exec:書き込みを修正

  rm -rf:ディレクトリを含むファイルを強制的に削除します

  {} \;:固定書き込み、ブレースのペア+スペース+ \

 

3:Linuxタイミングタスクをバックアップマシンに追加します。次のコマンドを入力します:crontab -e

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

保存して終了:ESC:wq

 

それは終わった、あなたは終わった

たとえば、2019-08-15 17:48の場合、システムのバックアップファイルは次のようになります。

おすすめ

転載: blog.csdn.net/u013282737/article/details/99646396