RHEL7構建Rsync資料同步伺服器

2021-09-03 03:31:45 字數 3286 閱讀 6488

rsync(remote sync)是unix及類unix平台下一款神奇的資料映象備份軟體,它不像ftp或其他檔案傳輸服務那樣需要進行全備份,rsync可以根據資料的變化進行差異備份,從而減少資料流量,提高工作效率。你可以使用它進行本地資料或遠端資料的複製,rsync可以使用ssh安全隧道進行加密資料傳輸。rsync伺服器端定義源資料,rsync客戶端僅在源資料發生改變後才會從伺服器上實際複製資料至本地,如果源資料在伺服器端被刪除,則客戶端資料也會被刪除,以確保主機之間的資料是同步的。rsync使用tcp 873埠。

使用centos 7系統安裝部署rsync非常方便,安裝光碟以及yum源中都提供了rsync軟體包,使用yum方式安裝即可。下面的案例演示了如何共享/common目錄,為此,我們需要建立/common目錄,並複製一些測試檔案存放在該目錄下。本例需要手動建立配置檔案/etc/rsync.conf,該檔案具體的語法格式在後面有詳細的描述。

[root@centos7 ~]# yum -y install rsync

[root@centos7 ~]# mkdir /common; cp /etc/init.d/* /common/

[root@centos7 ~]# vim /etc/rsync.conf

#/etc/rsyncd.conf

#設定伺服器資訊提示檔名稱,在該檔案中編寫提示資訊

motd file = /etc/rsyncd.motd

#開啟rsync資料傳輸日誌功能

transfer logging = yes

#設定日誌檔名稱,可以通過log format引數設定日誌格式

log file =/var/log/rsyncd.log

#設定rsync程序號儲存檔名稱

pid file =/var/run/rsyncd.pid

#設定鎖檔名稱

lock file =/var/run/rsync.lock

#設定伺服器監聽的埠號,預設為873

port = 873

#設定伺服器所監聽網絡卡介面的ip位址,這裡伺服器ip位址為192.168.0.254

address = 192.168.0.254

#設定進行資料傳輸時所使用的賬戶名稱或id號,預設使用nobody

uid = nobody

#設定進行資料傳輸時所使用的組名稱或gid號,預設使用nobody

gid = nobody

#設定user chroot為yes後,rsync會首先進行chroot設定,將根對映到path引數路徑下,對客戶

#端而言,系統的根就是path引數所指定的路徑。但這樣做需要root許可權,並且在同步符號

#連線資料時僅會同步名稱,而內容將不會同步。

use chroot = no

#是否允許客戶端上傳資料,這裡設定為唯讀。

read only = yes

#設定併發連線數,0代表無限制。超出併發數後,如果依然有客戶端連線請求,則將會收

#到稍後重試的提示訊息

max connections = 10

#模組,rsync通過模組定義同步的目錄,模組以[name]的形式定義,這與samba定義共

#享目錄是一樣的效果。在rsync中也可以定義多個模組

[common]

#comment定義注釋說明字串

comment = web content

#同步目錄的真實路徑通過path指定

path = /common

#忽略一些io錯誤

ignore errors

#exclude可以指定例外的目錄,即將common目錄下的某個目錄設定為不同步資料

#exclude = test/

#設定允許連線伺服器的賬戶,賬戶可以是系統中不存在的使用者

auth users = tom,jerry

#設定密碼驗證檔名稱,注意該檔案的許可權要求為唯讀,建議許可權為600,僅在設定auth users

#引數後有效

secrets file = /etc/rsyncd.secrets

#設定允許哪些主機可以同步資料,可以是單個ip,也可以是網段,多個ip與網段之間使用空

#格分隔

hosts allow=192.168.0.0/255.255.255.0

#設定拒絕所有(除hosts allow定義的主機外)

hosts deny=*

#客戶端請求顯示模組列表時,本模組名稱是否顯示,預設為true

list= false

接下來,通過echo的方式建立密碼檔案/etc/rsyncd.secrets,在該檔案中輸入兩個賬戶:tom賬戶的密碼是pass,jerry賬戶的密碼是111。需要注意的是,密碼檔案不可以對所有的人開放可讀許可權,為了安全,建議設定許可權為600。建立伺服器提示資訊檔案並向該檔案中匯入歡迎詞。由於rsync預設不是開機啟動服務,為了實現開機啟動rsync服務,我們可以通過echo將rsync --daemon追加至開機啟動檔案/etc/rc.local。最後通過設定防火牆開啟873埠的入站資料請求。

[root@centos7 ~]# echo "tom:pass" > /etc/rsyncd.secrets

[root@centos7 ~]# echo "jerry:111" >> /etc/rsyncd.secrets

[root@centos7 ~]# chmod 600 /etc/rsyncd.secrets

[root@centos7 ~]# echo 「welcome to access」 >/etc/rsyncd.motd

[root@centos7 ~]# rsync --daemon

[root@centos7 ~]# echo 「/usr/bin/rsync --daemon」 >> /etc/rc.local

[root@centos7 ~]# firewall-cmd --permanent --add-port=873/tcp

#新增防火牆規則,允許873埠的資料訪問

客戶端同步資料

現在讓我們開始同步資料吧,在客戶端主機中同樣是使用rsync命令進行初始化資料傳輸,使用同樣的程式,但客戶端主機不需要--daemon選項。

[root@centos7 ~]# yum -y install rsync

[root@centos7 ~]# rsync-vzrtopg --progress [email protected]::common /test

RHEL7 配置方法

命令 hostname 檢視現在主機的名稱 hostnamectl set hostname test 將主機名修改為 test reboot 重啟 配置資訊需要重啟生效 命令 ifconfig a 顯示所有網路介面資訊 含down狀態的介面 ifconfig命令被用於配置和顯示linux核心中網路...

rhel 7特殊許可權

一 suid 用於二進位制的檔案中,對目錄無效 讓一般使用者在執行某些二進位制檔案的時候,能夠暫時擁有該程式 二進位制檔案 所有者的許可權 使用該命令的所屬使用者的許可權來執行,而不是命令執行者的許可權 比如 在root使用者的家目錄下 在某一目錄下執行ls命令時候,要看其目錄對應的許可權 ls l...

RHEL7服務管理

對於學習過紅帽rhel6的系統或已經習慣使用service chkconfig等命令來管理系統服務的使用者可能要鬱悶了,因為在紅帽rhel7系統中管理服務的命令變成了 systemctl 但使用方法大致相同,做一下對比。例1 root localhost systemctl status sshd....