「在 FreeBSD 上使用 rsync 備份/傳輸資料」修訂間的差異
跳至導覽
跳至搜尋
(未顯示由 2 位使用者於中間所作的 2 次修訂) | |||
行 1: | 行 1: | ||
[[Category:FreeBSD相關文件|{{PAGENAME}}]] | [[Category:FreeBSD相關文件|{{PAGENAME}}]] | ||
作者:Joe Horn( joehorn AT leobbs DOT net ) | 作者:Joe Horn( joehorn AT leobbs DOT net ) | ||
− | |||
− | |||
附註:安裝步驟適用於 FreeBSD 平台,其它 UNIX-Like OS 可能有所不同。 | 附註:安裝步驟適用於 FreeBSD 平台,其它 UNIX-Like OS 可能有所不同。 |
於 2019年6月19日 (三) 01:39 的最新修訂
作者:Joe Horn( joehorn AT leobbs DOT net )
附註:安裝步驟適用於 FreeBSD 平台,其它 UNIX-Like OS 可能有所不同。
使用軟體:
- [Rsync]
前言
Rsync 的意思為 remote sync ,這套軟體的特性如下:
- 可以鏡像保存整個目錄樹和文件系統。
- 可以很容易做到保持原來文件的權限、時間、hard link、soft link 等等。
- 無須特殊權限即可安裝。
- 可以使用 rcp,ssh 等方式來傳輸文件,也可以通過直接的 socket 連接。
- 支援匿名傳輸。
這份文件將以最簡單的方式說明 Rsync 的使用與安裝。
範例說明
- Server 端 IP 為 192.168.1.1 , Client 端 IP 為 192.168.1.2
- Server 端開放匿名抓取的目錄為 /anon-mirror
- Server 端開放帳號登入抓取的目錄為 /mirror1 與 /mirror2
- 開放抓取 /mirror1 的帳號為 joehorn ,密碼為 passwd
- 開放抓取 /mirror2 的帳號為 joehorn ,密碼為 passwd
- 開放抓取 /mirror2 的帳號為 leobbs ,密碼為 wdpass
- Client 端放置資料的目錄同 Server 端.
安裝 Rsync
Client 與 Server 端都必須安裝 Rsync 這套軟體,請使用以下指令:
# cd /usr/ports/net/rsync # make install clean
設定 Rsync Daemon
為了讓 Server 端啟動 rsyncd ,請在 /etc/rc.conf 加入這行 :
rsyncd_enable="YES"
請編輯 /usr/local/etc/rsyncd.conf ,更改裡面的設定,詳細參數使用可以 man rsyncd.conf 。
以上面的範例,Server 端的設定如下:
pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log uid = nobody gid = nogroup use chroot = yes max connections = 4 [anonmirror] path = /anon-mirror comment = Anonymous Mirror ignore errors read only = yes list = no [mirror1] path = /mirror1 comment = Account login mirror1 ignore errors read only = yes list = no auth users = joehorn secrets file = /usr/local/etc/rsync.passwd [mirror2] path = /mirror2 comment = Account login mirror2 ignore errors read only = yes list = no auth users = joehorn, leobbs secrets file = /usr/local/etc/rsync.passwd
接下來建立帳號密碼檔。 若依照上方之設定,則是必須建立 /usr/local/etc/rsync.passwd 這個檔案,檔案內容如下:
joehorn:passwd leobbs:wdpass
rsyncd 為了保護您資料的安全,避免洩漏,將會強制要求您將帳號密碼檔的讀寫權限設定為 640 或 600 。 根據範例,將是使用以下指令:
# chmod 600 /usr/local/etc/rsync.passwd
啟動 Rsync Daemon
於 Server 端啟動 rsyncd ,請使用以下指令:
# /usr/local/etc/rc.d/rsyncd.sh start
使用 Rsync
- 在 Client 端抓取 /anon-mirror :
# rsync -vzrtopg --progress --delete 192.168.1.1::anonmirror /anon-mirror
- 參數中 -vzrtopg 裡的 v 是 verbose,z 是壓縮,r 是 recursive,topg 都是保持檔案原有屬性如 owner、time 的參數,--progress 是顯示出詳細的進度情況,--delete 是指如果 Server 端刪除了這一個檔案,那 Client 端也會把檔案刪除,保持真正的一致,其他參數請 man rsync 。
- 以 joehorn 這個帳號手動作 rsync 來抓取 /mirror1 :
# rsync -vzrtopg --progress --delete [email protected]::mirror1 /mirror1
- 接下來會出現 Password: 這個 prompt 要求您輸入密碼.
- 讓 leobbs 這個帳號自動抓取 /mirror2 ,請先編輯自己欲使用的密碼檔,例如 ~/rsync.pass ,內容只需要密碼。
- 範例如下:
wdpass
- 接下來把這個檔案 chmod 成 600:
# chmod ~/rsync.pass
- 再用這行指令來抓取資料(也可以丟進 cron 作):
# rsync -qzrtopg --delete [email protected]::mirror2 /mirror2 --password-file=~/rsync.pass