Não é possível obter o rsync sobre o sftp para funcionar

4

Estou tentando configurar um sistema de backup de um servidor Ubuntu para um Synology NAS (DS413j) usando rsync e sftp.

Eu criei um usuário para isso que podemos chamar de ubuntu-backup. Eu tenho um diretório no diretório inicial do ubuntu-backup chamado www, onde o backup será salvo. Eu habilitei o Backup de Rede no DSM O usuário ubuntu-backup tem acesso total ao seu diretório home

Aqui está o meu arquivo de configuração do rsync no Synology NAS:

#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

As permissões em / volume1 / homes / ubuntu-backup / www são ubuntu-backup: users 777

Aqui está o comando que estou executando.

rsync -aHvhiPb  /var/www/ [email protected]:./

O resultado:

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]

Se eu estou executando isso:

rsync -aHvhiPb  /var/www/ [email protected]

Parece que ele está enviando arquivos. Sem erros. Mas eu não consigo encontrar nada no NAS.

    
por Patrik 23.10.2013 / 15:34

1 resposta

7

O rsync não faz SFTP. Na página do manual:

   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. 

O SFTP não oferece shell, mas não funciona para o rsync. Você precisará de uma conexão SSH.

Uma vez que você tenha permitido conexões SSH, pode ser necessário dizer especificamente ao rsync para usar o SSH. Existem algumas maneiras de fazer isso:

rsync -aHvhiPb --rsh=ssh  /var/www/ [email protected]:./

ou

rsync -aHvhiPb  "ssh -l ubuntu-backup"  /var/www/ backup.example.com:./

Existem muito mais exemplos na página man do rsync.

No segundo exemplo, ele está sincronizando os arquivos em um diretório chamado [email protected] localizado no diretório direto. Para especificar um servidor remoto, você deve usar dois pontos em algum lugar na especificação.

    
por 23.10.2013 / 15:48