仲介交易 HTTP://www.aliyun.com/zixun/aggregation/6858.html">SEO診斷 淘寶客 雲主機 技術大廳
網站最重要的是資料,可明天手動備份還是太繁瑣了,而且8630.html">有時候怕忘記,尤其是使用VPS的朋友,說不定那天IDC 跑路了就完蛋了,所以今天給大家準備一個自動備份MYSQL資料庫的腳本, 網上有不少類似的腳本,不過測試了幾個不是這個問題就是那個問題,要不就只能備份單個資料庫匯出SQL檔。 反正不是特別理想。 晚上選擇了其中一個測試了半天無法上傳,翻閱資料做了一點點修改,OK了,以完全可以正常使用了,就分享出來供大家參考吧。 先說說這個腳本的特點,這個腳本的好處是直接打包DATA 檔,當然就可以包含DATA 資料夾下所有資料庫,和其他的倒出. SQL 檔相比,更方便只要MYSQL版本一樣,備份出來的資料,還原的只要停止MYSQL 服務 直接複製到 VPS mysql data 資料夾下覆蓋即可,最大的大優勢是,資料庫大點也不會出現SQL 導入失敗的情況。
使用腳本需要注意的地方:腳本最好不要在本地用記事本打開編輯,測試發現很容易出現許可權問題導致無法運行,最好直接下載到VPS用IV 編輯,或者可以直接用VI創建個腳本 再把代碼複製進去都可以。
一. VPS直接下載
wget HTTP://www.vpsck.com/soft/mysql_databak.sh
腳本內容及說明
#!/bin/sh /etc/init.d/mysqld stop #執行備份前先停止MySql,防止有資料正在寫入,備份出錯 date=` date +%Y%m%d ` #獲取當前日期 DAYS=3 #DAYS=3代表刪除3天前的備份, 即只保留最近3天的備份 BK_DR=/home/mysql_data #備份檔案存放路徑 DB_DR=/www/wdlinux/mysql-5.1.63/var #資料庫所有在路徑 LINUX_USER=root #系統使用者名 tar zcvf $BK_DR/mysql_data$date.tar.gz $DB_DR #備份資料 /etc/init.d/mysqld start #備份完成後,啟動MySql chown -R $LINUX_USER:$LINUX_ USER $BK_DR #更改備份資料庫檔案的擁有者 find $BK_DR -name "mysql_data*" -type f -mtime +$DAYS -exec rm {} \; #刪除3天前的備份檔案(注意:{} \;中間有空格) deldate=` date -d -3day +%Y_%m_%d ` #刪除ftp伺服器空間3天前的備份 ftp -v -n 192.168.0.1 << END #這個地方寫 你遠端FTP 的IP或者功能變數名稱 user vpsbf 123456 #使用者名、密碼 binary #設置二進位傳輸 cd mysqlbak #進入ftp目錄(注意:這個目錄遠端FTP裡先手動創建) lcd /home/mysql_data #列出 本地目錄 prompt mput mysql_data$date.tar.gz mysql_data$date.tar.gz #上傳目錄中的檔 mdelete mysql_data$deldate.tar.gz mysql_data$ deldate.tar.gz #刪除ftp空間7天前的備份 close #關閉 bye #退出 END
二.在VPS上創建 /home/mysql_data 資料夾
ssh 創建也可以 命令創建也可以隨便
三.編輯腳本相關內容
vi /root/mysql_databak.sh
vi 命令使用暫時沒有寫說明如果不會先搜索下吧 過兩天寫個教程
四.給予腳本執行許可權
chmod +x /home/mysql_databak.sh
五.利用crontab 實現定時自動運行(如果沒有裝可以先搜索下安裝流程日後補教程)
vi /etc/crontab
在下面添加運行代碼
10 2 * * * root /home/mysql_databak.sh
表示每天淩晨2點10分執行備份
六.測試腳本是否設置成功
./mysql_databak.sh
如果成功的話FTP 和VPS 相應的目錄下就會產生備份好了的檔了
七.設置 crontab
chkconfig crond on #設為開機啟動 service crond start #啟動任務
通過一系列的設置,你的資料就非常安全了,明天定時備份。 不怕任何意外導致資料丟失了。