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の場合、システムのバックアップファイルは次のようになります。