Ubuntu

無法通過 sftp 進行 rsync 工作

  • October 23, 2013

我正在嘗試使用 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 的目錄中。為了指定遠端伺服器,您應該在規範中的某處使用冒號。

引用自:https://serverfault.com/questions/548053