SynoCommunity / spksrc

Cross compilation framework to create native packages for the Synology's NAS
https://synocommunity.com
Other
3.02k stars 1.23k forks source link

Request: "SynoCli Network Tools" - rsync with ACL support #4786

Closed Lurgainn closed 1 year ago

Lurgainn commented 3 years ago

Hi, I'm trying to use a standard version of rsync (not the native version personalized by Synology), so I installed the package "SynoCli Network Tools", and it's good but it lacks of linux ACL support. When I execute '/usr/local/bin/rsync --version' the output is:

rsync version 3.1.3 protocol version 31 Copyright (C) 1996-2018 by Andrew Tridgell, Wayne Davison, and others. Web site: http://rsync.samba.org/ Capabilities: 64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints, no socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace, append, no ACLs, xattrs, iconv, symtimes, prealloc

so no ACL. Is it possible to add linux ACL management? Anyway thanks for your wonderful work.

hgy59 commented 3 years ago

4787 builds rsync with the following features:

rsync  version 3.2.3  protocol version 31
Copyright (C) 1996-2020 by Andrew Tridgell, Wayne Davison, and others.
Web site: https://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    no socketpairs, hardlinks, no hardlink-specials, symlinks, IPv6, atimes,
    batchfiles, inplace, append, ACLs, xattrs, optional protect-args, iconv,
    symtimes, prealloc, stop-at, no crtimes
Optimizations:
    no SIMD, no asm, openssl-crypto
Checksum list:
    xxh128 xxh3 xxh64 (xxhash) md5 md4 none
Compress list:
    zstd lz4 zlibx zlib none
Lurgainn commented 3 years ago

4787 builds rsync with the following features:

Thank you so much!! Have you any idea when this pr wil be included and found in a update of the package?

hgy59 commented 3 years ago

@Lurgainn If you don't mind you can download and test the packages built by github build action. Goto "#4787 - Checks" and download the provided Artifacts (you can only download packages.zip containing all spk files built), and manually install the spk for your diskstation model

Lurgainn commented 3 years ago

Thanks for your tip. I did it and I successfully installed your "spk" after uninstalling the official package. Sorry to bother you again but now I can't understand where I am wrong. I execute your rsync, and now into the capabilities I see ACL support. So as "root" I execute "/usr/local/bin/rsync --daemon" (after "killall rsync"). In "/etc/rsyncd.conf" I created a section with a path, hosts allow, read only = false, a auth user with the secret file and uid and gid = 0. But when from my pc I execute the client, it's all OK until I try to use the option "-A. When I do, I get this error: rsync: The server is configured to refuse --acls (-A) Where I'm wrong??

Thanks again.

BenjV commented 3 years ago

My understanding is that Acl support on rsync will not function because there is simply no Acl support on Linux. That is why Synology created its own Acl on Dsm but a standard rsync will no be able to use that.

hgy59 commented 3 years ago

One can use the default rsync that is available under DSM. It supports the following syno specific parameters:

     --syno-acl              copy Synology ACL data
     --syno-cmd=FILE         Synology customized command from FILE
     --syno-prog=FILE        export progress of rsync transmission to FILE
     --syno-auth             Enable synology authentication machanism
     --syno-pseudo-root
     --syno-comp-mode        Run rsync as compatible mode
     --syno-meta=VER         Transfer Synology metadata in rsync
     --syno-lastbkptime=TIME    Transfer Synology last backup start time in rsync
BenjV commented 3 years ago

My guess would be that it is made to copy files with Dsm specific Acl's to another Synology Nas and will not work between on the Windows an Dsm. But you can try it.

Lurgainn commented 3 years ago

Thanks so much for your help. You are right: the attributes of mounted disk on my Synology NAS are "_rw,nodev,relatime,userxattr,synoacl,etc..", so synoacl instead of posix acl! :-( I'm so disappointed because without standard (posix) acl support I can't use my NAS for a true/full backup with rsync. And I'm scared to use other software because they all need themself to restore from the backup, so if anything goes wrong, my backups will be useless. With rsync I could always restore anything because the backup are always readable like normal files/folders. I have to think about some alternatives. Anyway, thanks again.

BenjV commented 3 years ago

@Lurgainn Rsync is not a backup tool but a sync tool, so this will only function completely transparant between two the same systems.

My suggestion would be to use a backup tool on the windows site which create just one file with all files in it and use rsync to sync those backup set(s) to your Nas. Then your problem with acl's would not exists anymore.

Lurgainn commented 3 years ago

Thank you for your suggestion, and I know that rsync was born to synchronize files/folders, but it is also used for backups with the very interesting feature of making incremental backups. My backup strategy (from my Linux computer, not Windows) plans to keep the history of at least a few months of my daily backups, so at any time I can reconstruct the situation present at a given day of my choice without for this reason need enormous storage spaces. Hence the use of incremental systems such as Rsync. And I also need to handle special attributes and ACL.

BenjV commented 3 years ago

Can all be done with a local incremental backup tool and rsync only the backup sets. The use of rsync the way you want to do is also an enourmous constrain of all your resources (cpu on both sides as wel as the network)