我正在嘗試使用 NAS 提供的“備份站”從 NAS (QNAP TS-469 Pro) 設定備份到運行 Ubuntu 16.10 的 PC。
如果我 ssh 到 NAS 並運行以下命令,rsync 就會起作用:
touch file.txt # Create "file.txt" on the QNAP
rsync file.txt username@ipaddress:~ # Backup "file.txt" on the backup PC
但是,當從 NAS 的 GUI(在瀏覽器中)設定備份時,我收到錯誤
連接埠號碼無效或服務被停用。
我讀到了一些關於連接埠 873 或運行 rsync 守護程序的內容,但所有這些對我來說都非常不清楚。
為什麼手動運行可以rsync
工作,而「備份站」卻出現錯誤?當然最後,我對自動備份的工作很有興趣。
答案1
Rsync 可以在兩種不同的模式下運作:
- 透過 SSH:SSH 隧道(主要使用管道)內的 Rsync 連線(用於控制和資料傳輸)。由於 SSH 訪問的普遍性及其安全性,這通常是首選方法。然而,為了真正透明和自動化(不需要密碼),您必須設定 RSA 身份驗證。此外,由於所有資料都透過 SSH 加密,因此速度可能比其他方法慢;
- 透過守護進程(或服務)模式:在遠端系統上,Rsync 作為守護程序/服務運行,偵聽連接埠 TCP 873。這是 QNAP 用於本地和遠端備份的模式。要讓 QNAP 使用您的 PC 作為備份目標(即:在 PC 上備份 NAS),您需要啟用 Rsync 服務在你的電腦上。雖然並不困難,但它肯定比簡單的 SSH 隧道更複雜。您可以在網上找到更多信息,例如這裡。
答案2
您可能會rsync over rsync
感到rsync over ssh
困惑。
透過 SSH 進行 Rsync(使用你的 ssh 設定)
rsync -av file.txt username@ipaddress:~
此方法遍歷 SSH 通道並進行加密。
Rsync 之上的 Rsync使用標準rsync協議
rsync -av file.txt ipaddress::myhome/.
後者假設您已設定 rsyncd.conf 並將 rsync 作為守護程式啟動。作為守護進程,所有身份驗證/安全性都在 rsyncd.conf 中定義,並且不使用加密。
識別差異的簡單方法是地址後面的兩個冒號以及兩個冒號後面的共享名稱。
這是一個非常簡單且危險的rsyncd.conf 的範例(簡單,因為 root 和權限不是問題。危險,因為以 root 身分運行而不是 chroot)
uid = root
gid = root
use chroot = no
max connections = 64
lock file = /var/tmp/rsyncd.lock
syslog facility = local5
pid file = /var/tmp/rsyncd.pid
strict modes = false
hosts allow = 192.168.120.2
timeout = 60
dont compress = *.xz *.gz *.tgz *.zip *.rpm *.bz2 *.7z *.rar *.jp* *.gif *.png *.avi *.mp* *.wmv *.asf *.flv *.m4v *.mkv *.mov *.ogm *.rm *.3g*
#refuse options = checksum delete
refuse options = delete
#
[myhome]
list = false
comment = "myhome"
path = /home/myself/mydir
read only = no
這是我啟動所說的守護程式:
#!/bin/bash
set -o posix
set -u
# keep nagios happy
renice 19 -p $$ > /dev/null 2>&1
ionice -c3 -p $$ > /dev/null 2>&1
rsync --daemon --ipv4 --address=192.168.120.1 --config=/home/myhome/rsyncd.conf --log-file=/dev/shm/rsync.log