在linux上定時備份資料庫,可以通過編寫sell指令碼命令,再借助crontab命令定時執行該指令碼即可實現,以下為具體步驟:
1,編寫sell指令碼命令,並儲存檔名為:backup_mysql.sh
#********************====start shell 指令碼*************************===
#!/bin/bash
#定義有備份的資料庫名
dbname=test
#定義備份資料庫時使用的使用者名稱和密碼
dbuser=root
dbpasswd=123456
#資料庫備份的路徑
backuppath=/home/test/backup/mysql/
#資料庫備份日誌檔案儲存的路徑
logfile=/home/test/backup/log/mysql.log
#以當前的時間作為備份的資料庫命名。
dumpfile=$(date +%y%m%d%h%m)
#這個函式用來備份資料庫
back_db() " backup--------" >>$
#備份資料庫,如果有錯誤資訊也記入日誌。預設utf8編碼
#--skip-opt (mysql服務執行時備份,**此引數,防止表損壞,mysqldump可選引數)
#--quick --force --routines --add-drop-database --add-drop-table (儲存過程也會一起備份,mysqldump可選引數)
/usr/bin/mysqldump --skip-opt -u$ -p$ --default-character-set=utf8 --quick --force --routines --add-drop-database --add-drop-table $ >$$.sql 2>> $
#開始壓縮資料檔案
echo $(date +%y-%m-%d%t%a%t%t)" beginning zip $$.sql" >>$
#將備份資料庫檔案庫壓成zip檔案,並刪除先前的sql檔案。如果有錯誤資訊也記入日誌。
tar zcvf $.tar.gz $.sql && rm $.sql 2>> $
#將壓縮後的檔名存入日誌。
echo "backup file name:"$".tar.gz" >>$
echo -e "-------"$(date +%y-%m-%d%t%a%t%t)" ending database "$" backup-------\n" >>$
}#傳送郵件
#cat $ | mutt -s "blog資料庫備份" -a $.tar.gz [email protected] }
#這個函式用來刪除90天前的資料,注意,這個指令碼會刪除當前目錄下所有的早於七天前的檔案
rm_oldfile() \;
}#切換到資料庫備份的目錄。如果不做這個操作,壓縮檔案時有可能會錯誤
cd $
#執行備份資料函式
back_db
#執行刪除檔案函式
rm_oldfile
#********************end shell 指令碼********************==
2,編寫crontab檔案:
crontab -e
定義任務計畫內容,每天凌晨兩點執行一次編寫好的指令碼命令來備份mysql資料庫
0 2 * * * /home/gzl/backup/script/backup_mysql.sh
如何在linux下寫指令碼定時備份mysql資料庫
我們在工作中可以這麼做減少資料丟失概率 1.先在某個資料夾下建立乙個指令碼,這裡命名為back up database.sh,在 mnt data dump 這目錄下 bin bash basedir mnt data dump cd basedir echo 開始備份資料庫 echo mysqld...
如何在Linux上實現每天自動備份mysql資料庫
1.首先在伺服器上建立存放備份sql的資料夾 mkdir usr local mysqlbackup2.編寫指令碼mysqlbackupscript.sh mkdir usr local mysqlscript 建立指令碼存放位置 cd usr local mysqlscript 進入指令碼存放位置...
如何在linux上安裝git
工作需要,要裝git,結果找不到源,後來搞定,記錄如下 1.linux el5 x86 64 1.1 我的這個版本上有yum,所以用yum來裝git,但是第一次裝找不到源,最後顯示 nothing to do 1.2 然後上網搜,說是要先裝epel 1.3 如何安裝epel?網上給出很多鏈結,但是可...