mysql全備指令碼

2022-09-27 13:27:11 字數 2328 閱讀 2802

一:編寫指令碼mysql_m_bak_full.sh

#!/bin/bash

#mysql 全量備份

time=`date +%y%m%d`

now=`date +%f' '%t`

etime=`date -d '-7 day' +%y%m%d`

#備份檔案路徑

mkdir -p /home/mysql_backup/mysql_master/full_back/$time

mkdir -p /home/mysql_backup/mysql_master/full_back/$time/log

backupdir="/home/mysql_backup/mysql_master/full_back/$time"

log_dir="/home/mysql_backup/mysql_master/full_back/$time/log"

delete_dir="/home/mysql_backup/mysql_master/full_back"

#mysql user

user=root

#mysql host

#host=localhost

#mysql password

pass=root

echo "$now begin backup mysql deploybase" >> $log_dir/$time.log

sleep 2

#mysqldump and socket配置絕對路徑

/home/mysql/bin/mysqldump -u$ -p$ --socket=/home/mysql/mysql.sock --all-databases > $backupdir/master_bak_$time.sql

if [ $? -eq 0 ]

then

echo "$now mysql 連線成功 " >> $log_dir/$time.log

echo "$now 開始執行壓縮......" >> $log_dir/$time.log

tar -zcf $backupdir/master_bak_$time.tar.gz -c $backupdir master_bak_$time.sql

if [ $? -eq 0 ]

then

echo "$now 檔案壓縮成功......" >> $log_dir/$time.log

rm -rf $backupdir/master_bak_$time.sql

size=`du -sh $backupdir/master_bak_$time.tar.gz |awk ''`

echo "$now backup mysql deploybase successfully completed" >> $log_dir/$time.log

#傳送郵件

echo "$now 資料庫資料備份成功——全量備份,ip:127.0.0.1,檔案大小為:$size" > /tmp/tmp.log

rm -rf /tmp/tmp.log

else

echo "$now 檔案壓縮失敗......" >> $log_dir/$time.log

echo "$now 資料庫資料備份成功__全量備份,但檔案壓縮失敗,ip:127.0.0.1" > /tmp/tmp.log

rm -rf /tmp/tmp.log

fielse

echo "$now backup mysql deploybase faild" >> $log_dir/$time.log

echo "$now 資料庫資料備份失敗——全量備份,ip:127.0.0.1,請檢查mysql是否正常" > /tmp/tmp.log

rm -rf /tmp/tmp.log

fisleep 5

#刪除目錄下的指定檔案可以用:find 對應目錄 -mtime +天數 -name "檔名" -exec rm -rf {} \;

find $delete_dir -mtime +3 -name "*.*" -exec rm -rf {} \;

if [ $? -eq 0 ]

then

echo "刪除3天前無效資料成功" >> $log_dir/$time.log

else

echo "刪除3天前無效資料失敗" >> $log_dir/$time.log

fi#指令碼新增執行許可權

chmod +x /home/mysql_m_bak_full.sh

二:新增計畫任務實現定期備份(每週6的凌晨2點執行備份指令碼)

crontab -e  編輯計畫任務

00 02 * * 6  sh /home/mysql_m_bak_full.sh

linux web目錄檔案全備指令碼

bin bash 檔案全備指令碼 刪除7天以前的檔案 呼叫方法 yxy www.sql8.net anybooks qq.com 2014 08 20 請主意所有路徑都為全整目錄 sh filebak.sh 要備份的目標目錄 備份檔案存放路徑 保留檔案的天數 sh filebak.sh home w...

mysql怎麼做增備 mysql的全備和增量備份

26 張立 工作原理就是把每次完整備份的binlog 和postion取出,做增量備份的時候取當時的binlog和postion,使用mysqlbinlog 把這之間的資料讀出到另乙個檔案。一 完整備份 vim full mysqldump.sh bin bash dir info date dat...

xtrabackup全備 增備 恢復

全備 innobackupex no timestamp defaults file path my.cnf data backup 20141106 增量1 innobackupex no timestamp defaults file path my.cnf incremental increm...