Mysql運維之定時備份

2021-10-23 19:23:56 字數 1694 閱讀 9294

#!/bin/bash

# 設定mysql的登入使用者名稱和密碼(根據實際情況填寫)

mysql_user="root"

mysql_password="66666666"

mysql_host="localhost"

mysql_port="3306"

mysql_charset="utf8mb4"

# 備份檔案存放位址(根據實際情況填寫)

backup_location=/sql_backup

# 設定時間為7天

expire_backup_delete="on"

expire_days=7

backup_time=`date +%y%m%d%h%m`

backup_dir=$backup_location

welcome_msg="welcome to use mysql backup tools!"

# 判斷mysql例項是否正常執行

mysql_ps=`ps -ef |grep mysql |wc -l`

mysql_listen=`netstat -an |grep listen |grep $mysql_port|wc -l`

if [ [$mysql_ps == 0] -o [$mysql_listen == 0] ]; then

echo "error:mysql is not running! backup stop!"

exit

else

echo $welcome_msg

fi# 備份指定資料庫中資料(此處假設資料庫是newgame)

mysqldump -h$mysql_host -p$mysql_port -u$mysql_user -p$mysql_password -b newgame> $backup_dir/newgame-$backup_time.sql

flag=`echo $?`

if [ $flag == "0" ];then

echo "database newgame success backup to $backup_dir/newgame-$backup_time.sql.gz"

else

echo "database newgame backup fail!"

fi# 刪除過期資料

if [ "$expire_backup_delete" == "on" -a "$backup_location" != "" ];then

`find $backup_location/ -type f -mtime +$expire_days | xargs rm -rf`

echo "expired backup data delete complete!"

fi

編輯定時任務:

crontab -e

# 新增定時任務(每天8:10以及16:10,23:10執行備份操作)

10 8,16,23 * * * cd /mysqlback/;sh mysql_backup.sh>>backup.log 2>&1

#此處重啟一下crontab讓配置生效

/bin/systemctl restart crond.service

mysql -u root -p movegame < movegame.sql
參考:

MySQL運維 XBK備份

一 物理備份 xbk 1 軟體安裝 1 安裝依賴 2 安裝 3 備份的命令 2 備份實現原理 3 備份語句 4 備份完成的目錄結構 二 恢復資料 三 增量備份 1 增量備份的介紹 2 增量備份策略設計及實現 3 檢視增量備份和全量備份檔案差異 注意 增量備份恢復,中間的last lsn號不能終斷,否...

Linux 運維定時

30 8 18 1 1 5 mxr mxr.sh 對以上進行解釋 每半個小時執行一次 從每天的8點到18點 從星期一到星期五 cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些引數與說明 crontab u 設定某個使用者的cron服務,一般root使用者在執行這個命令的時...

mysql定時備份指令碼 MySql定時備份指令碼

最近需要對某服務的資料庫資料進行備份,因此參考網上教程完成資料庫備份指令碼.因為服務的使用頻率較低,因此設定定時任務,在每天的中午以及午夜時分進行備份操作.bin bash 設定mysql的登入使用者名稱和密碼 根據實際情況填寫 mysql user mysql password mysql hos...