資料在任何一家公司裡面都是最核心的資産,定期備份則是為了保證資料庫出現問題的時候能夠及時復原到最近的備份點,将損失縮小到最小
這篇文章将會兩部分來說明:1、mysql的定期備份;2、同步到其它伺服器
備份還原
備份到壓縮檔案從壓縮檔案導入
1、建立備份目錄
2、編寫運作腳本
腳本代碼:
腳本說明:
<code>backupdir</code> mysql備份位址
<code>root</code> mysql使用者名
<code>pwd</code> mysql密碼
<code>database</code> 資料庫名
<code>mysql_bin_dir</code> mysql的bin路徑;
<code>time=` date +%y%m%d%h `</code>也可以寫為<code>time="$(date +"%y%m%d$h")"</code>其中<code>`</code>符号是tab鍵上面的符号,不是enter左邊的’符号,還有date後要有一個空格。
<code>type f</code> 表示查找普通類型的檔案,f表示普通檔案。
<code>mtime +7</code> 按照檔案的更改時間來查找檔案,+5表示檔案更改時間距現在7天以前;如果是 -mmin +5 表示檔案更改時間距現在5分鐘以前。
<code>exec rm {} \</code> 表示執行一段shell指令,exec選項後面跟随着所要執行的指令或腳本,然後是一對兒{},一個空格和一個\,最後是一個分号。
<code>/dev/null 2>&1</code> 把标準出錯重定向到标準輸出,然後扔到/dev/null下面去。通俗的說,就是把所有标準輸出和标準出錯都扔到垃圾桶裡面;其中的& 表示讓該指令在背景執行。
3、為腳本添加執行權限
4、設定crontab定時執行
注:crontab配置檔案格式如下: 分 時 日 月 周 指令
5、重新開機crontab
這樣就完了定時備份并清理前7天的備份資料
這裡使用linux同步檔案工具rsync+inotify來進行檔案的同步
rsync是類unix系統下的資料鏡像備份工具——remote sync。一款快速增量備份工具 remote sync,遠端同步 支援本地複制,或者與其他ssh、rsync主機同步
用法
這是最簡單的用法,表示同步src,dest檔案。(即,執行之後,dest的檔案與src的相同,以src的為準)
常用選項
<code>-a</code>: 等價于-rlptgod,歸檔式 <code>-r</code>: 遞歸 <code>-l</code>: 複制軟體連結 <code>-p</code>: 保留權限資訊 <code>-t</code>: 将src的修改時間,同步到dest <code>-g</code>: 同步組資訊(group) <code>-o</code>: 同步擁有者資訊(own) <code>-d</code>: 保持字元與塊裝置檔案 <code>-z</code>: 啟用壓縮傳輸 <code>–delete</code>:如果src沒有此檔案,那麼dest也不能有,即在dest删除src裡沒有的檔案。(如果你使用這個選項,就必須搭配-r選項一起)
啟用rsync伺服器端同步遠端檔案
rsycn的服務端為伺服器的檔案接收端,rsycn的用戶端為伺服器的檔案推動端。
rsycn的服務端/檔案接收端配置
服務端需要開啟rsyncd服務
添加配置檔案rsyncd.conf
建立認證檔案
修改/etc/xinetd.d/rsync檔案,disable 改為 no
啟動服務端
rsycn的用戶端/檔案發送端配置
用戶端配置簡單 隻需要配置密碼既可
用戶端同步測試
rsync隻是一次性同步,如果需要實時同步就需要引入另一個工具了
inotify 是一種強大的、細粒度的、異步的檔案系統事件監控機制,linux核心從2.6.13起,加入了inotify支援,通過inotify可以監控檔案系統中添加、删除,修改、移動等各種細微事件,利用這個核心接口,第三方軟體就可以監控檔案系統下檔案的各種變化情況,而inotify-tools就是這樣的一個第三方軟體。
inotify隻需要要按照部署在同步的用戶端,當監控的檔案有變化觸動 rsync腳本來同步
安裝
配置監控的檔案路徑
rsync排除監控檔案目錄
用戶端同步到遠端的腳本rsync.sh
給腳本執行權限,執行後就可以了
<a href="http://seanlook.com/2014/12/12/rsync_inotify_setup/">linux下同步工具inotify+rsync使用詳解</a>
作者:純潔的微笑
版權所有,歡迎保留原文連結進行轉載 :)