MySQL數(shù)據(jù)庫的shell腳本自動備份
MySQL數(shù)據(jù)庫的shell腳本自動備份
經(jīng)常備份數(shù)據(jù)庫是一個好習(xí)慣,雖然數(shù)據(jù)庫損壞或數(shù)據(jù)丟失的概率很低,但一旦發(fā)生這種事情,后悔是沒用的。一般網(wǎng)站或應(yīng)用的后臺都有備份數(shù)據(jù)庫的功能按鈕,但需要去手工執(zhí)行。我們需要一種安全的,每天自動備份的方法。下面的這個shell腳本就是能讓你通過過設(shè)定Crontab來每天備份MySQL數(shù)據(jù)庫的方法。
#!/bin/bash # 數(shù)據(jù)庫認(rèn)證 user="" password="" host="" db_name="" # 其它 backup_path="/path/to/your/home/_backup/mysql" date=$(date +"%d-%b-%Y") # 設(shè)置導(dǎo)出文件的缺省權(quán)限 umask 177 # Dump數(shù)據(jù)庫到SQL文件 mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$db_name-$date.sql
通過上面的腳本,我們可以每天導(dǎo)出一份sql備份文件,文件的名稱按當(dāng)日日期生成。日積月累,這樣的文件會生成很多,有必要定時刪除一些老舊的備份的文件,下面的這行命令就是做這個任務(wù)的,你可以把它加在上面的腳本后面。
# 刪除30天之前的就備份文件
find $backup_path/* -mtime +30 -exec rm {} \;
我在使用上面的腳本時曾經(jīng)遇到過一個問題,Crontab定時執(zhí)行腳本導(dǎo)出沒有報錯,但導(dǎo)出的是空的SQL文件,但登錄到控制臺手工執(zhí)行這個腳本是備份成功的。后來發(fā)現(xiàn)是Crontab執(zhí)行腳本是缺少系統(tǒng)環(huán)境信息,找不到 mysqldump ,改正的方法是使用 mysqldump 全路徑就行了。而之所以沒有報錯信息,是因?yàn)?mysqldump 把錯誤信息輸出到了 stderr。在命令的后面末尾接 “2>&1” 這樣一個信息重定向命令就可以看到錯誤信息了:
mysqldump -ujoe -ppassword > /tmp/somefile 2>&1
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
mysql雙機(jī)熱備實(shí)現(xiàn)方案【可測試】
雙機(jī)熱備從廣義上講,就是對于重要的服務(wù),使用兩臺服務(wù)器,互相備份,共同執(zhí)行同一服務(wù)。這篇文章主要介紹了mysql雙機(jī)熱備實(shí)現(xiàn)方案,需要的朋友可以參考下2019-10-10
PHP5 mysqli的prepare準(zhǔn)備語句使用說明
mysqli對prepare的支持對于大訪問量的網(wǎng)站是很有好處的,它極大地降低了系統(tǒng)開銷,而且保證了創(chuàng)建查詢的穩(wěn)定性和安全性.prepare準(zhǔn)備語句分為綁定參數(shù)和綁定結(jié)果2012-12-12
MySQL 導(dǎo)出和導(dǎo)入數(shù)據(jù)的幾種實(shí)現(xiàn)方式
本文主要介紹了MySQL 導(dǎo)出和導(dǎo)入數(shù)據(jù)的幾種實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03

