Can't get rsync over sftp to work

5,764

rsync doesn't do SFTP. From the man page:

   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 doesn't give you a shell, ergo it doesn't work for rsync. You'll need an SSH connection instead.

Once you've allowed SSH connections, you may need to specifically tell rsync to use SSH. There are a few ways to do that:

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

or

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

There are a lot more examples in the man page for rsync.

In the second example, it's syncing the files into a directory named [email protected] located in the direct. In order to specify a remote server, you should use a colon somewhere in the specification.

Share:
5,764

Related videos on Youtube

Patrik
Author by

Patrik

Updated on September 18, 2022

Comments

  • Patrik
    Patrik almost 2 years

    I'm trying to set up a backup system from an Ubuntu server to a Synology NAS (DS413j) using rsync and sftp.

    I have created a user for this that we can call ubuntu-backup. I have a directory in ubuntu-backup home directory called www where the backup will be saved. I have enabled Network Backup in DSM The user ubuntu-backup has full access to it's home directory

    Here is my rsync config file on the 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
    

    The permissions on /volume1/homes/ubuntu-backup/www is ubuntu-backup:users 777

    Here is the command i'm running.

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

    The result:

    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]
    

    If I'm running this:

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

    It looks like its sending files. No errors. But I cant find anything on the NAS.

  • Patrik
    Patrik over 10 years
    I set the user ubuntu-backup to /bin/sh and I can now login with ssh manually. But rsync will still not work.
  • Jenny D
    Jenny D over 10 years
    You may need to tell it specifically to use ssh - I'll amend my answer.
  • Patrik
    Patrik over 10 years
    Ah yes! It finally works now. Thanks! Here us my final command: rsync -aHvhiPb --rsh=ssh /var/www/ [email protected]:/volume1/homes/ubuntu-backu‌​p/www
  • Jenny D
    Jenny D over 10 years
    Kul att det funkade!