Mysql資料庫定時備份就是這麼簡單

2021-10-06 03:28:45 字數 1757 閱讀 5888

使用mysqldump命令編寫sh指令碼

將指令碼新增進crontab定時執行

如果存在今日的備份,備份失敗

如果不存在備份,如果有10天前的備份就刪除,備份今日sql並將sql壓縮打包,刪除打包之前的sql

注意

賦予shell指令碼執行許可權chmod+x ./backupmysql.sh需要source /etc/profile才可以執行環境變數中的命令,如果還不行可以換成命令的絕對路徑

$(date +%y%m%d --date='10 days ago')10表示10天前的日期

由於mysql高版本不支援命令列寫入密碼,所以要在my.cnf中如下配置,這樣在使用mysqldump時就不需要設定密碼了

開啟配置檔案

vim /etc/mysql/my.cnf寫入配置

[mysqldump]

user=your_backup_user_name

password=your_backup_password

完整backupmysql.sh檔案

#!/bin/bash

backuppath=/data/backup/ #指令碼目錄

mysql_bk_dir=$backuppath/mysql_bk_dir #備份檔案目錄

logfile=$backuppath/backup.log #日誌檔案路徑

dbname=name #資料庫名稱

source /etc/profile #引入環境變數

newfile="$mysql_bk_dir"/$(date +%y%m%d)"$dbname".tgz

dumpfile="$mysql_bk_dir"/$(date +%y%m%d)"$dbname".sql

oldfile="$mysql_bk_dir"/$(date +%y%m%d --date='10 days ago')"$dbname".tgz

if [ -f $newfile ]

then

echo "[$newfile]the backup file is exists!" >> $logfile

else

cd $mysql_bk_dir

mysqldump "$dbname"> $dumpfile

tar czf $newfile $i$(date +%y%m%d)"$dbname".sql >> $logfile 2>&1

echo "[$newfile]backup success!" >> $logfile

if [ ! -f $oldfile];then

echo "oldfilefile is exists"

else

rm -rf $oldfile

fi rm -rf $dumpfile

fi

開啟配置

crontab -e新建任務(每日凌晨1:30執行)

30 1 * * * /data/backup/backupmysql.sh檢視任務

crontab -l

更多crontab配置教程點此前往檢視

MySQL資料庫定時備份

建立shell指令碼 在 usr local mysql 資料夾下建立backupdb.s 件 指令碼檔案可以自定義位置 vim backupdb.sh 建立指令碼內容如下 bin sh db user root db passwd 123123 db name userdb name date y...

mysql資料庫定時備份

找乙個目錄新建乙個指令碼,這裡選擇 var bin vim var bin mysql data backup.sh指令碼 以下配置資訊請自己修改 mysql user root mysql備份使用者 mysql password root mysql備份使用者的密碼 mysql host loca...

MySql 資料庫定時備份

1 使用sqldump 任務計畫 mysqldump備份成sql檔案 假想環境 mysql 安裝位置 c mysql 論壇資料庫名稱為 bbs mysql root 密碼 123456 資料庫備份目的地 d db backup 指令碼 rem code start echo off cd c mys...