使用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...