linux中數據庫定時備份腳本

編寫腳本

linux中經常會遇到要求備份數據庫,這裏記錄一下備份的腳本怎麼寫

BackDir:我們的備份的文件放的位置
LogFile:備份成功或者失敗的日誌
DataBase:數據庫名稱
DataBaseUser:數據庫用戶名
DataBasePWD:數據庫密碼

腳本如下

export LANG=en_US.UTF-8
#注意:下面這幾個變量需修改爲你自己的
BackDir=/home/backup
LogFile=/home/backup/bak.log
DataBase=user
DataBaseUser=root
DataBasePWD=pwd

if [ ! -d "$BackDir" ];then
mkdir $BackDir
fi

if [ ! -f "$LogFile" ]; then
 touch "$LogFile"
fi

Date=`date +%Y%m%d_%H%M%S`
Begin=`date +%Y%m%d_%H:%M:%S`
#到備份目錄下
cd $BackDir
#設置導出腳本名稱
DumpFile=dataBaseNme_$Date.sql
#設置壓縮包名稱
DumpFileZip=dataBase_$Date.sql.tgz
#導出數據庫數據
mysqldump -u$DataBaseUser -p$DataBasePWD $DataBase > $DumpFile
#壓縮sql腳本
tar -czvf $DumpFileZip $DumpFile
#刪除sql腳本
rm $DumpFile

#下面這一段是保留最近7天的數據
count=$(ls -l  *.tgz |wc -l)
if [ $count -ge 8 ]
then
file=$(ls -l *.tgz |awk '{print $9}'|awk 'NR==1')
rm -f  $file
fi

Last=`date +"%Y%m%d_%H:%M:%S"`
echo start:$Begin end:$Last $DumpFileZip succ >> $LogFile

加入到定時任務

  • crontab -l 查看當前有沒有定時任務
  • crontab -e 編輯定時任務
    例子:
0    0   *   *   *   /root/test.sh
#分  時   日   月  周  |《==============命令行=======================》|

注意:有可能會遇到這個錯誤:

1.mysqldump: command not found
這是因爲在安裝mysql的時候,並沒有將mysql的bin配置到系統的環境變量中

  • 解決辦法:
   vim /etc/profile

在這裏插入圖片描述

設置環境變量

寫一個MYSQL_HOME,值爲“mysql的安裝路徑”

在PATH後面加上$MYSQL_HOME/bin

export後面加上MYSQL_HOME

MYSQL_HOME=/usr/local/mysql

PATH=$PATH:$MYSQL_HOME/bin

export PATH MYSQL_HOME

在這裏插入圖片描述
將mysql加入到系統的環境變量後這個問題就搞定了,以後在任何目錄也都可以連接mysql

  1. windows下上傳shell腳本至linux,其格式將爲dos。dos模式的shell腳本將不能再linux下正確運行,需要修改文件
  • linux服務器上,用vi編輯器打開shell腳本,隨後進入命令行模式,輸入"set ff",即可查看文件模式,
  • 在命令行模式下,輸入"set ff=unix",即可將dos模式修改爲unix模式。
    再次查看:
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章