linux如何實現網頁自動同步

使用多個web服務器實現負載均衡,為了保持前端web服務器上資源的一致性可以通過rsync在主服務器上(可寫入數據)將更新過的文件同步到其他從服務器(只讀服務器),但是不能自動的進行實時同步,使用inotify可以實現實時同步

主服務器:192.168.6.205 inotify
從服務器:192.168.6.36 rsync

1、在從服務器上配置rsync,開啟rsync服務,讓主服務可以將資源同步到該服務器上

vim /etc/rsyncd.conf
uid = nginx
gid = nginx
port = 873
host all = 192.168.6.205
use chroot = on
max connections = 4
timeout = yes
[WordPress]
path = /usr/local/nginx/html/wordpress
comment = rsync files
ignore errors
read only = no
list = yes
auth users = rsync
secrets file = /etc/rsync.passwd

創建/etc/rsync.passwd密碼配置文件
vim /etc/rsync.passwd
#用戶:密碼
rsync:rsync

2、在主服務器上安裝inotify-tools

tar -zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure –prefix=/usr/local/inotify
make && make install

在主服務器上配置rsync密碼文件,用于將數據同步到從服務器
vim /etc/rsync.passwd
#密碼
rsync

創建腳本
vim inotifyrsync.sh

#!/bin/bash
host=192.168.6.36
src=/usr/local/nginx/html/wordpress/
dst=wordpress
user=rsync
inotifywait=/usr/local/inotify/bin/inotifywait
rsync=/usr/bin/rsync
$inotifywait -mrq –timefmt ‘%d/%m/%y %h:%m’ –format ‘%t %w%f’ -e modify,delete,create,attrib? $src? | while read files
do
?????? $rsync -vzrtopg –delete –progress –password-file=/etc/rsync.passwd $src $user@$host::$dst
??????? echo “${files} was rsynced” >>/tmp/rsync.log 2>&1
?? done

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享