導航:首頁 > 配伺服器 > 如何連接伺服器並實現同步

如何連接伺服器並實現同步

發布時間:2024-11-27 16:51:06

Ⅰ rsync伺服器架設(數據同步|文件增量備份)

為了實現多個伺服器負載均衡,我們需要這幾個伺服器之間進行數據同步,而rsync軟體也能勝任,下面我們來介紹如何架設rsync伺服器來達到文件增量備份和數據同步的功能。

什麼是rsync
rsync 是一個快速增量文件傳輸工具,它可以用於在同一主機備份內部的備分,我們還可以把它作為不同主機網路備份工具之用。本文主要講述的是如何自架rsync伺服器,以實現文件傳輸、備份和鏡像。相對tar和wget來說,rsync 也有其自身的優點,比如速度快、安全、高效。

rsync的安裝
在CentOS伺服器,我們可以執行以下命令安裝

yum install rsync
對於debian、ubuntu伺服器,則是以下命令

sudo apt-get install rsync
rsync伺服器的配置文件rsyncd.conf
下面我們將涉及到三個文件 rsyncd.conf,rsyncd.secrets 和rsyncd.motd。
rsyncd.conf 是rsync伺服器主要配置文件。
rsyncd.secrets是登錄rsync伺服器的密碼文件。
rsyncd.motd是定義rysnc 伺服器信息的,也就是用戶登錄信息。
下面我們分別建立這三個文件。

mkdir /etc/rsyncd
註:在/etc目錄下創建一個rsyncd的目錄,我們用來存放rsyncd.conf 和rsyncd.secrets文件;

touch /etc/rsyncd/rsyncd.conf
註:創建rsyncd.conf ,這是rsync伺服器的配置文件;

touch /etc/rsyncd/rsyncd.secrets
註:創建rsyncd.secrets ,這是用戶密碼文件;

chmod 600 /etc/rsyncd/rsyncd.secrets
註:為了密碼的安全性,我們把許可權設為600;

touch /etc/rsyncd/rsyncd.motd
註:創建rsyncd.motd文件,這是定義伺服器信息的文件。
下一就是我們修改 rsyncd.conf 和rsyncd.secrets 和rsyncd.motd 文件的時候了。
rsyncd.conf文件內容:

復制代碼

代碼如下:

# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid
port = 873
address = 192.168.1.171
#uid = nobody
#gid = nobody
uid = root
gid = root
use chroot = yes
read only = yes

#limit access to private LANs
hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0
hosts deny=*
max connections = 5
motd file = /etc/rsyncd/rsyncd.motd
#This will give you a separate log file
#log file = /var/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync
#transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[linuxsirhome]
path = /home
list=yes
ignore errors
auth users = linuxsir
secrets file = /etc/rsyncd/rsyncd.secrets
comment = linuxsir home
exclude = beinan/ samba/
[beinan]
path = /opt
list=no
ignore errors
comment = optdir
auth users = beinan
secrets file = /etc/rsyncd/rsyncd.secrets

密碼文件:/etc/rsyncd/rsyncd.secrets的內容格式;

用戶名:密碼
linuxsir:222222
beinan:333333
註: 這里的密碼值得注意,為了安全,你不能把系統用戶的密碼寫在這里。比如你的系統用戶 linuxsir 密碼是 abcdefg ,為了安全,你可以讓rsync 中的linuxsir 為 222222 。這和samba的用戶認證的密碼原理是差不多的;
rsyncd.motd 文件;
它是定義rysnc 伺服器信息的,也就是用戶登錄信息。比如讓用戶知道這個伺服器是誰提供的等;類似ftp伺服器登錄時,我們所看到的 ftp ……。 當然這在全局定義變數時,並不是必須的,你可以用#號注掉,或刪除;我在這里寫了一個 rsyncd.motd的內容為:

+++++++++++++++++++++++++++
+ rsync 2002-2007 +
+++++++++++++++++++++++++++
rsyncd.conf文件代碼說明
pid file = /var/run/rsyncd.pid
註:告訴進程寫到 /var/run/rsyncd.pid 文件中;

port = 873
註:指定運行埠,默認是873,您可以自己指定;

address = 192.168.1.171
註:指定伺服器IP地址;

uid = nobody
gid = nobdoy
註:伺服器端傳輸文件時,要發哪個用戶和用戶組來執行,默認是nobody。 如果用nobody 用戶和用戶組,可能遇到許可權問題,有些文件從伺服器上拉不下來。所以我就偷懶,為了方便,用了root 。不過您可以在定義要同步的目錄時定義的模塊中指定用戶來解決許可權的問題。

use chroot = yes
用chroot,在傳輸文件之前,伺服器守護程序在將chroot 到文件系統中的目錄中,這樣做的好處是可能保護系統被安裝漏洞侵襲的可能。缺點是需要超級用戶許可權。另外對符號鏈接文件,將會排除在外。也就是說,你在rsync伺服器上,如果有符號鏈接,你在備份伺服器上運行客戶端的同步數據時,只會把符號鏈接名同步下來,並不會同步符號鏈接的內容;這個需要自己來嘗試;

read only = yes
註:read only 是只讀選擇,也就是說,不讓客戶端上傳文件到伺服器上。還有一個 write only選項,自己嘗試是做什麼用的吧;

#limit access to private LANs
hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0
註:在您可以指定單個IP,也可以指定整個網段,能提高安全性。格式是ip 與ip 之間、ip和網段之間、網段和網段之間要用空格隔開;

max connections = 5
註:客戶端最多連接數;

motd file = /etc/rsyncd/rsyncd.motd
註:motd file 是定義伺服器信息的,要自己寫 rsyncd.motd 文件內容。當用戶登錄時會看到這個信息。

log file = /var/log/rsync.log
註:rsync 伺服器的日誌;

transfer logging = yes
註:這是傳輸文件的日誌;

[linuxsirhome]
註:模塊,它為我們提供了一個鏈接的名字,鏈接到哪呢,在本模塊中,鏈接到了/home目錄;要用[name] 形式;

path = /home
註:指定文件目錄所在位置,這是必須指定的;

auth users = linuxsir
註:認證用戶是linuxsir ,是必須在 伺服器上存在的用戶;

list=yes
註:list 意思是把rsync 伺服器上提供同步數據的目錄在伺服器上模塊是否顯示列出來。默認是yes 。如果你不想列出來,就no ;如果是no是比較安全的,至少別人不知道你的伺服器上提供了哪些目錄。你自己知道就行了;

ignore errors
註:忽略IO錯誤,詳細的請查文檔;

secrets file = /etc/rsyncd/rsyncd.secrets
註:密碼存在哪個文件;

comment = linuxsir home data
註:注釋可以自己定義,寫什麼都行,寫點相關的內容就行;

exclude = beinan/ samba/
註:exclude 是排除的意思,也就是說,要把/home目錄下的beinan和samba 排除在外; beinan/和samba/目錄之間有空格分開 ;

啟動rsync 伺服器及防火牆的設置
啟動rsync伺服器
啟動rsync 伺服器相當簡單,–daemon 是讓rsync 以伺服器模式運行;

/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
rsync伺服器和防火牆
Linux 防火牆是用iptables,所以我們至少在伺服器端要讓你所定義的rsync 伺服器埠通過,客戶端上也應該讓通過。

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
查看一下防火牆是不是打開了 873埠;

iptables -L
通過rsync客戶端來同步數據
rsync -avzP linuxsir@::linuxsirhome linuxsirhome
Password: 這里要輸入linuxsir的密碼,是伺服器端提供的,在前面的例子中,我們用的是 222222,輸入的密碼並不顯示出來;輸好後就回車;
註: 這個命令的意思就是說,用linuxsir 用戶登錄到伺服器上,把linuxsirhome數據,同步到本地目錄linuxsirhome上。當然本地的目錄是可以你自己定義的,比如 linuxsir也是可以的;當你在客戶端上,當前操作的目錄下沒有linuxsirhome這個目錄時,系統會自動為你創建一個;當存在linuxsirhome這個目錄中,你要注意它的寫許可權。
說明:
-a 參數,相當於-rlptgoD,-r 是遞歸 -l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有許可權;-t 保持文件原有時間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當於塊設備文件;
-z 傳輸時壓縮
-P 傳輸進度;
-v 傳輸時的進度等信息,和-P有點關系,自己試試。可以看文檔;

rsync -avzP --delete linuxsir@::linuxsirhome linuxsirhome
這回我們引入一個 –delete 選項,表示客戶端上的數據要與伺服器端完全一致,如果 linuxsirhome目錄中有伺服器上不存在的文件,則刪除。最終目的是讓linuxsirhome目錄上的數據完全與伺服器上保持一致;用的時候要小心點,最好不要把已經有重要數所據的目錄,當做本地更新目錄,否則會把你的數據全部刪除;

rsync -avzP --delete --password-file=rsync.password linuxsir@::linuxsirhome linuxsirhome
這次我們加了一個選項 –password-file=rsync.password ,這是當我們以linuxsir用戶登錄rsync伺服器同步數據時,密碼將讀取 rsync.password 這個文件。這個文件內容只是linuxsir用戶的密碼。我們要如下做;

復制代碼

代碼如下:

touch rsync.password
chmod 600 rsync.password
echo "222222" rsync.password
rsync -avzP --delete --password-file=rsync.password linuxsir@::linuxsirhome linuxsirhome

註: 這樣就不需要密碼了;其實這是比較重要的,因為伺服器通過crond 計劃任務還是有必要的;

讓rsync 客戶端自動與伺服器同步數據
編輯crontab
crontab -e
加入如下代碼:

10 0 * * * rsync -avzP --delete --password-file=rsync.password linuxsir@::linuxsirhome linuxsirhome
表示每天0點10分執行後面的命令。更多crontab用法請參考

Ⅱ 濡備綍瀹炵幇瀹㈡埛絝涓庢湇鍔″櫒絝鐨勬暟鎹鍚屾


濡備綍瀹炵幇瀹㈡埛絝涓庢湇鍔″櫒絝鐨勬暟鎹鍚屾ワ紵
濡備綍瀹炵幇瀹㈡埛絝涓庢湇鍔″櫒絝鐨勬暟鎹鍚屾ワ紵
鍦ㄧ幇浠g殑搴旂敤紼嬪簭涓錛屽逛簬瀹㈡埛絝鍜屾湇鍔″櫒涔嬮棿鐨勬暟鎹鍚屾ュ彉寰楄秺鏉ヨ秺鍏抽敭錛岃繖瀵逛簬鏀鎸佽法騫沖彴銆佸垎甯冨紡鍗忎綔絳夊簲鐢ㄥ満鏅闈炲父鏈夊府鍔┿傚湪鏈鏂囦腑錛屾垜浠灝嗚ㄨ哄備綍瀹炵幇瀹㈡埛絝鍜屾湇鍔″櫒涔嬮棿鐨勬暟鎹鍚屾ャ
1.鍩虹姒傚康
鍦ㄦ帰璁ㄥ備綍瀹炵幇瀹㈡埛絝鍜屾湇鍔″櫒涔嬮棿鐨勬暟鎹鍚屾ヤ箣鍓嶏紝鎴戜滑闇瑕佷簡瑙d竴浜涘熀鏈姒傚康鍜屾湳璇錛
瀹㈡埛絝錛氶氬父鎸囩敤浜庤塊棶搴旂敤紼嬪簭鎴栨湇鍔$殑緇堢璁懼囷紝濡傜數鑴戙佹墜鏈烘垨騫蟲澘鐢佃剳絳夈
鏈嶅姟鍣錛氭寚鎻愪緵搴旂敤紼嬪簭鎴栨湇鍔$殑涓澶涓繪満鎴栨湇鍔″櫒錛岄氬父鍏鋒湁杈冮珮鐨勮$畻鑳藉姏鍜屽瓨鍌ㄨ兘鍔涖
鏁版嵁鍚屾ワ細鎸囧湪瀹㈡埛絝鍜屾湇鍔″櫒涔嬮棿淇濇寔鏁版嵁鐨勫畬鍏ㄤ竴鑷存э紝鍗沖綋涓涓璁懼囩殑鏁版嵁鍙戠敓鍙樺寲鏃訛紝鍏朵粬璁懼囩殑鏁版嵁涔熶細鐩稿簲鍦板彂鐢熷彉鍖栥
鍗忚錛氶氫俊鍗忚鏄瀹㈡埛絝鍜屾湇鍔″櫒涔嬮棿閫氫俊鐨勮勫垯鍜岀害瀹氾紝渚嬪侶TTP銆乄ebSocket銆乀CP/IP絳夈
API錛堝簲鐢ㄧ▼搴忕紪紼嬫帴鍙o級錛氭槸涓緇勭敤浜庤塊棶搴旂敤紼嬪簭鎴栨湇鍔$殑鎺ュ彛銆
2.瀹炵幇鏁版嵁鍚屾ョ殑鍩烘湰鍘熷垯
瑕佸疄鐜板㈡埛絝鍜屾湇鍔″櫒涔嬮棿鐨勬暟鎹鍚屾ワ紝闇瑕侀伒寰浠ヤ笅鍑犱釜鍩烘湰鍘熷垯錛
鏁版嵁鐨勬坊鍔犮佹洿鏂板拰鍒犻櫎搴旇ラ氳繃API瀹屾垚銆
搴旇ヤ嬌鐢ㄥ悓涓鍗忚鍜孉PI鐗堟湰錛岀『淇濆㈡埛絝鍜屾湇鍔″櫒涔嬮棿鐨勫畬鍏ㄥ吋瀹廣
瀹㈡埛絝鍜屾湇鍔″櫒搴旇ヤ嬌鐢ㄧ浉浼肩殑鏁版嵁澶勭悊浠g爜錛屼互閬垮厤鍑虹幇鏁版嵁涓嶄竴鑷寸殑闂棰樸
搴旇ヤ嬌鐢ㄦ湇鍔″櫒鎺ㄩ併佽疆璇㈡垨Webhook絳夋満鍒朵互鑾峰彇鏈鏂扮殑鏁版嵁鏇存柊銆
3.甯哥敤鐨勬暟鎹鍚屾ユ柟娉
甯哥敤鐨勫㈡埛絝鍜屾湇鍔″櫒涔嬮棿鏁版嵁鍚屾ョ殑鏂規硶鏈変互涓嬪嚑縐嶏細
鏈嶅姟鍣ㄦ帹閫侊細鍦ㄨ繖縐嶆儏鍐典笅錛屾湇鍔″櫒灝嗘柊鐨勬暟鎹鎺ㄩ佺粰瀹㈡埛絝錛岃屼笉闇瑕佸㈡埛絝鍙戝嚭璇鋒眰銆傚綋瀹㈡埛絝榪炴帴鍒版湇鍔″櫒鏃訛紝鏈嶅姟鍣ㄥ彂閫佹墍鏈夋渶鏂扮殑鏁版嵁銆傝繖縐嶆柟娉曟瘮杞璇㈡洿楂樻晥錛屽洜涓烘湇鍔″櫒涓嶄細鍙戦佷笉蹇呰佺殑鏁版嵁銆
杞璇錛氬湪姝ゆ柟娉曚腑錛屽㈡埛絝姣忛殧涓孌墊椂闂達紙渚嬪傛瘡鍒嗛挓錛夊悜鏈嶅姟鍣ㄥ彂鍑烘暟鎹璇鋒眰錛屼互鏌ョ湅鏄鍚︽湁浠諱綍鏇存柊鎴栨洿鏀廣傜劧鍚庢湇鍔″櫒灝嗘墍鏈夋渶鏂扮殑鏁版嵁鍙戦佸洖瀹㈡埛絝銆傝繖縐嶆柟娉曟湁鍔╀簬紜淇濆㈡埛絝鍜屾湇鍔″櫒涔嬮棿鐨勫疄鏃舵暟鎹鍚屾ワ紝浣嗗彲鑳戒細瀵艱嚧緗戠粶璐熻澆榪囬珮鐨勯棶棰樸
Webhook錛氬湪姝ゆ柟娉曚腑錛屾湇鍔″櫒灝嗘柊鏁版嵁鏇存柊鍙戦佸埌涓涓鐗瑰畾鐨刄RL銆傜劧鍚庡㈡埛絝灝嗛氳繃姝URL璁塊棶騫舵帴鏀舵洿鏂般傝繖縐嶆柟娉曞彲浠ユ洿楂樻晥鍦拌幏鍙栨渶鏂扮殑鏁版嵁錛岄潪甯擱傚悎瀹炴椂搴旂敤銆
4.甯歌侀棶棰樺強瑙e喅鏂規
鍦ㄥ疄鐜版暟鎹鍚屾ョ殑榪囩▼涓錛屽彲鑳戒細閬囧埌涓浜涘父瑙侀棶棰樸備互涓嬫槸涓浜涜В鍐蟲柟妗堬細
鏁版嵁鍐茬獊錛氬綋澶氫釜瀹㈡埛絝鍚屾椂鏇存柊鍚屼竴鏁版嵁鏃訛紝鍙鑳戒細鍑虹幇鏁版嵁鍐茬獊鐨勬儏鍐點備負浜嗚В鍐寵繖涓闂棰橈紝鍙浠ヤ嬌鐢ㄤ箰瑙傞攣鎴栨偛瑙傞攣鎶鏈錛岀『淇濇暟鎹鐨勬g『鎬с
鏁版嵁浼犺緭澶辮觸錛氬綋鏁版嵁浼犺緭澶辮觸鏃訛紝鍙鑳戒細鍑虹幇鏁版嵁涓嶄竴鑷寸殑闂棰樸備負浜嗚В鍐寵繖涓闂棰橈紝鍙浠ヤ嬌鐢ㄧ紦瀛樻満鍒訛紝浠ヤ究鍦ㄥけ璐ユ椂閲嶆柊灝濊瘯鏁版嵁浼犺緭銆
瀹夊叏鎬ч棶棰橈細褰撳㈡埛絝鍜屾湇鍔″櫒涔嬮棿浼犺緭鏁忔劅鏁版嵁鏃訛紝瀹夊叏鎬ф垚涓轟竴涓閲嶈佺殑闂棰樸備負浜嗕繚璇佸畨鍏ㄦэ紝鍙浠ヤ嬌鐢⊿SL銆丠TTPS鎴栧叾浠栧姞瀵嗘妧鏈銆
鎬葷粨
瀹㈡埛絝鍜屾湇鍔″櫒涔嬮棿鐨勬暟鎹鍚屾ユ槸鐜頒唬搴旂敤紼嬪簭闈炲父閲嶈佺殑涓閮ㄥ垎銆傚逛簬鍒嗗竷寮忓崗浣溿佽法騫沖彴鏀鎸佺瓑搴旂敤鍦烘櫙錛屾暟鎹鍚屾ユ垚涓轟竴涓鍏抽敭鍥犵礌銆傚湪鏈鏂囦腑錛屾垜浠浠嬬粛浜嗕竴浜涘父鐢ㄧ殑鏁版嵁鍚屾ユ柟娉曞拰瑙e喅鏂規堬紝甯屾湜鑳藉熷府鍔╁紑鍙戜漢鍛樻洿濂藉湴瀹炵幇瀹㈡埛絝鍜屾湇鍔″櫒涔嬮棿鐨勬暟鎹鍚屾ャ

Ⅲ 兩台伺服器的數據同步如何實現

1.安裝CentOS7.0yum install ssh 安裝SSH協議yum install rsync (rsync是一個遠程數據同步工具,可通過LAN/WAN快速同巧渣困步孝念多台主機間的文件)service sshd restart 啟動服務任務梁螞

閱讀全文

與如何連接伺服器並實現同步相關的資料

熱點內容
可愛的程序員小姐姐 瀏覽:127
伺服器上網站的地址 瀏覽:796
蘋果平板如何找到app資源庫 瀏覽:319
阿里雲可以雲伺服器地址 瀏覽:247
熊貓繪畫app如何導入圖片 瀏覽:553
如何自己編輯手機app 瀏覽:922
程序員那麼可愛帶的項鏈 瀏覽:530
安卓系統導航mic什麼意思 瀏覽:190
編譯sdk如何輸出bin文件 瀏覽:673
如何用html5開發app 瀏覽:139
怎麼隱藏蘋果的app 瀏覽:324
上海捷豹空氣壓縮機 瀏覽:455
51單片機換行 瀏覽:735
哪裡可以快速學看建築圖紙app 瀏覽:500
內部排序的演算法比較 瀏覽:179
伺服器如何定期執行指令 瀏覽:931
python下載python腳本 瀏覽:297
台達plc遠程編程 瀏覽:263
雲計算的後台伺服器 瀏覽:589
windows7的我的電腦咋創建文件夾 瀏覽:492