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