Ubuntu
無法通過 sftp 進行 rsync 工作
我正在嘗試使用 rsync 和 sftp 設置從 Ubuntu 伺服器到 Synology NAS (DS413j) 的備份系統。
我為此創建了一個使用者,我們可以稱之為 ubuntu-backup。我在 ubuntu-backup 主目錄中有一個名為 www 的目錄,將保存備份。我已在 DSM 中啟用網路備份使用者 ubuntu-backup 對其主目錄具有完全訪問權限
這是我在 Synology NAS 上的 rsync 配置文件:
#motd file = /etc/rsyncd.motd #log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock use chroot = no [NetBackup] path = /var/services/NetBackup comment = Network Backup Share uid = root gid = root read only = no list = yes charset = utf-8 auth users = root secrets file = /etc/rsyncd.secrets [ubuntu-backup] path = /volume1/homes/ubuntu-backup/www comment = Ubuntu Backup uid = ubuntu-backup gid = users read only = false auth users = ubuntu-backup secrets file = /etc/rsyncd.secrets
/volume1/homes/ubuntu-backup/www 的權限是 ubuntu-backup:users 777
這是我正在執行的命令。
rsync -aHvhiPb /var/www/ ubuntu-backup@backup.example.com:./
結果:
sending incremental file list ERROR: module is read only rsync error: syntax or usage error (code 1) at main.c(1034) [Receiver=3.0.9] rsync: connection unexpectedly closed (9 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
如果我執行這個:
rsync -aHvhiPb /var/www/ ubuntu-backup@backup.example.com
它看起來像它的發送文件。沒有錯誤。但是我在 NAS 上找不到任何東西。
rsync 不做 SFTP。從手冊頁:
There are two different ways for rsync to contact a remote system: using a remote-shell program as the transport (such as ssh or rsh) or contacting an rsync daemon directly via TCP.
SFTP沒有給你一個shell,所以它不適用於rsync。您將需要一個 SSH 連接。
一旦您允許 SSH 連接,您可能需要專門告訴 rsync 使用 SSH。有幾種方法可以做到這一點:
rsync -aHvhiPb --rsh=ssh /var/www/ ubuntu-backup@backup.example.com:./
或者
rsync -aHvhiPb "ssh -l ubuntu-backup" /var/www/ backup.example.com:./
rsync 的手冊頁中有更多範例。
在第二個範例中,它將文件同步到位於直接目錄中的名為 ubuntu-backup@backup.example.com 的目錄中。為了指定遠端伺服器,您應該在規範中的某處使用冒號。