編寫腳本
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
- windows下上傳shell腳本至linux,其格式將爲dos。dos模式的shell腳本將不能再linux下正確運行,需要修改文件
- linux服務器上,用vi編輯器打開shell腳本,隨後進入命令行模式,輸入"set ff",即可查看文件模式,
- 在命令行模式下,輸入"set ff=unix",即可將dos模式修改爲unix模式。
再次查看: