天天看點

在Ubuntu搭建Rsync備份伺服器過程

作者:最閃不過紅星負

自己是個小公司的網工,由于工作需要,現在想要将windwos上的ERP系統上的備份資料備份到ubuntu伺服器上。

在網上查詢了教程,覺得要實作很簡單,即在Ubuntu上搭建和配置Rsync Server端,然後在windows上通過批處理或者指令行做定時備份即可。可是實作在部署中總會有些問題和網上的教程對不上号。經過多方查詢和虛拟機驗證,終于将所有問題解決,并将此次搭建的過程和一些新手容易出錯和不好了解的地方做了整理,希望對有有些朋友有幫助。

本人就是一個小白,是以文字内容盡可能的直白,不高大上,請各位看官老爺多多指教。

我選用的是ubuntu18桌面版,之是以選擇桌面版,是因為考慮到有其他操作,并且這個伺服器主要用途就是資料備份,除了Rsync以外,還考慮後期增加FTP和SMB功能,是以有圖形界面對于檔案的操作會更友善。

在Ubuntu搭建Rsync備份伺服器過程

lsb_release -a檢視版本号

經過查詢,此 版本已經包含了Rsync,預設的配置檔案位置:/usr/share/doc/rsync/examples/rsyncd.conf 我的方法也簡單,就直接cat指令去看下檔案是否存在,是否有内容。如果存在,即表示确實有安裝。然後需要将其複制到 /etc/ 下 #cp /usr/share/doc/rsync/examples/rsyncd.conf /etc

rsync預設是沒有啟動的,可通過ps -e |grep rsync檢視

同時檢查一下防火牆是否開啟,若開啟,則需要放行873端口。

然後編輯配置檔案

配置檔案上面我們已經複制了,隻需要使用VI指令去修改配置即要,配置的說明網上很多,這裡不在做解釋,本文隻對筆者遇到的各種問題總結的注意事項,若有需要,可參考:

  1. log file=/var/log/rsyncd #日志檔案要開啟,當出現錯誤時,可以在這裡檢視,對于問題的解決很重要。請注釋掉此項!
  2. [子產品名稱],此項也很重要,如果你需要多個伺服器備份到不同的地方,那就需要多個子產品名稱來區分,當然,你在一個子產品下用不同的檔案夾來區分也可以。注意修改并記住 [XXX] 裡面的字母,因為這在後面同步時需要的。
  3. path = /var/你計劃備份檔案夾 #子產品下備份檔案的存放位址。此項也需要注意,因為這個檔案夾需要你自己sudo mkdir自己建立,并且 chmod 777 /var/你計劃備份檔案夾 path = /var/你計劃備份檔案夾 這裡是XXX子產品下的備份檔案位置 當然,這裡你也可以自己定義在其他位置。
  4. read only = no #XXX子產品下的同步檔案夾是否隻讀。這裡很重要,當時筆者出錯後,通過修改此項後才解決問題(注意檢視第1條開啟的日志檔案裡找問題)read only = no //no表示不隻讀,請修改為no, 若為YES請修改。
  5. auth users = 你的使用者名檔案裡定義的使用者名 #允許連接配接XXX子產品的使用者,在這裡指定使用者名。注意重點,這裡的使用者名是獨立的,即你的系統使用者名是A,在這裡不起作用,如果你的Rsync需要使用A的使用者名,也需要重新在建立使用者名檔案,并且在檔案裡寫上用的使用者名:密碼。Vi /etc/rsyncd.pass #建立密碼檔案 使用者名:密碼 #檔案内容 Sudo chmod 0600 /etc/rsyncd.pass 給檔案授權,然後在auth users = 你的使用者名檔案裡定義的使用者名。 若有多個使用者名,請使用空格或者逗号來分隔。

以上工作完成後,就可以在windows下使用指令行執行以同步動作。在cwRsync\bin目錄下執行.\rsync.exe -av --port 873 --password-file=/cygdrive/C/p.txt /cygdrive/C/0/1 [email protected]::XXX/ #說明 運作rsync 端口873 密碼檔案 備份檔案夾 使用者名 伺服器 子產品名稱

運作後一切順利,但是在真實環境下的Winodws serve 2016裡會有問題,即密碼檔案不起作用。需要手動輸入密碼後才能同步,這會導緻一個問題,c盤目錄的p.txt密碼檔案不起作用。系統無法識别密碼手動輸入密碼就無法讓系統無人執守并自動備份。

經過多次嘗試。可以将p.txt複制到\cwRsync\bin目錄下,并且在腳本上加入cd d:\cwRsync\bin 然後在将同步指令中的--password-file=/cygdrive/C/p.txt 使用<p.txt替換,修改為.\rsync.exe -av --port 873 /cygdrive/C/0/1 <p.txt [email protected]::XXX/ 即可。

需要注意的,必須cd指令bin目錄下,然後在使用以上指令即可。以上就是小白筆者的全部解決過程。最後要注意一點,在寫批處理的時候,注意另存為的編碼選擇ANSI,據說可能會有亂碼。同時可以加上--progress 可以在同步時顯示進度和網速什麼的,看着比較進階。

在Ubuntu搭建Rsync備份伺服器過程