程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> rsync+inotify-tools+ssh實現mysql-bin日志文件實時備份

rsync+inotify-tools+ssh實現mysql-bin日志文件實時備份

編輯:MySQL綜合教程

rsync+inotify-tools+ssh實現mysql-bin日志文件實時備份


1、環境:兩台Centos計算機直連,其服務器A的IP地址為192.168.1.124,服務器B的IP地址為192.168.1.121。   2、需求軟件安裝(ssh系統默認已經安裝):   服務器A: yum install rsync inotify-tools   服務器B: yum install rsync   3、建立用戶(備份執行用戶) 建立用戶:useradd rsync 設置密碼:略 注意:兩台服務器都需要建立用戶(此處兩天服務器建立了相同的用戶,也可建立不同的用戶)   4、建立ssh-key實現ssh自動連接 服務器A   建立公鑰和私鑰 [root@A ~]# su - rsync [rsync@A ~]$ ssh-keygen -t rsa(全部使用默認值,一直按回車即可) 完成後,此時會在/home/rsync/.ssh下,生成一對“公鑰和私鑰”,如下所示 [rsync@A .ssh]# ll total 12 -rw-------. 1 rsync rsync 1675 Oct 20 01:47 id_rsa -rw-r--r--. 1 rsync rsync  393 Oct 20 01:47 id_rsa.pub   然後,如下命令,將id_rsa.pub負責到服務器B上。 scp /home/rsync/.ssh/id.rsa.pub [email protected]:/home/rsync/   服務器B: 建立ssh存儲“公鑰”的目錄: mkdir /home/rsync/.ssh chmod 700 /home/rsync/.ssh 將服務器A上傳遞的公鑰,mv到/home/rsync/.ssh。如下命令 mv /home/rsync/id_rsa.pub /home/rsync/.ssh/authorized_keys chmod 600 /home/rsync/.ssh/authorized_keys   重啟SSH服務 [root@A ~]# /etc/init.d/sshd restart [root@B ~]# /etc/init.d/sshd restart   5、inotify_tools的使用 1、確定inotifywait的位置 2、inotifywait的常見使用方法   /usr/bin/inotifywait -mrq -e modify,delete,create,attrib 命令解釋: -m 是保持一直監聽 -r 是遞歸查看目錄 -q 是打印出事件 -e create,move,delete,modify,attrib 是指 “監聽 創建 移動 刪除 寫入 權限” 事件   6、服務器A上創建實時監控備份腳本inotify.ssh   #!/bin/sh SRC=/usr/local/mysql/binlog/ DST=[email protected]:/home/rsync1/test /usr/bin/inotifywait -mrq -e modify,delete,create,attrib ${SRC} | while read D E F do       /usr/bin/rsync -ahqzt --delete $SRC $DST done   命令解釋: SRC:監控的目錄() DST:備份的目錄 while read D E F:inotifywait 命令產生三個返回值,分別是“日期,時間,文件” 這3個返回值會做為參數傳給read,因此腳本中的“while read D E F” 寫法細化了返回值。   rsync命令解釋: /usr/bin/rsync -ahqzt --delete $SRC $DST -a 存檔模式 -h 保存硬連接 -q 制止非錯誤信息 -z 壓縮文件數據在傳輸 -t 維護修改時間 -delete 刪除於多余文件   7、腳本的運行   服務器A:   修改執行權限:chmod +x inotify.sh 在rsync用戶模式下運行該腳本(ssh-key是rsync用戶建立的): su - rsync [rsync@A sbin]$ ./inotify_rsync.sh &   #在後台運行   此次在服務器A的/usr/local/mysql/binlog/#在該目錄下,建立文件和目錄,可以實時備份到目標位置   注意: 1、備份用戶rsync有沒有讀取/usr/local/mysql/binlog/目錄的權限,不然備份失敗 2、建議修改mysql-bin的存儲目錄,如下所示 log-bin=/usr/local/mysql/binlog/mysql-bin            #打開日志(主機需要打開),這個mysql-bin也可以自定義,這裡也可以加上路徑,如:/usr/local/mysql/binlog/mysql-bin  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved