I have a QNAP TS-251+ NAS (connected via VPN + SMB if it matters) and would like to backup files from two machines to it (running Windows 8.1 and Windows 10), mostly user profile data (My Documents, etc.). I'm currently not using the snapshot function of the NAS, it's running a standard RAID setup.

I think it would be nice to copy the data on a file level to be sure they are accessible later. I have slight trust issues with proprietary backup formats and it would also give me access to the files from my phone. It would be a one-way sync, so that I can delete stuff from my PC, but it would still be available on the NAS until I delete it manually from there. I guess robocopy would be the standard choice here?

But I'd also like to keep file history. For instance in case files get corrupted locally and I don't notice before the server has been updated with the changes. I guess this would be difficult/impossible to do on a file level if one wants to keep the directory structure etc. So maybe a combination with a "file history" tool on the NAS?

Finally, I would also like to backup the whole NAS to some cloud storage in an encrypted way. Any good candidates for that?


1 Answer 1


rsync (think Robocopy for Unix; it works on Windows too) has an option --link-dest that specifies a remote baseline for a new copy. You can get it by installing Cygwin and selecting the rsync package.

Your QNAP supports rsync natively so you can use an rsync destination (instead of writing to the SMB share).

Before copying a file into the new destination, rsync checks the baseline for an identical file. If one exists, it creates a hard link to that existing copy, instead of copying the file anew.

A hard link is not a "link" in the normal sense; it's a link to the file content, in exactly the way that the original file name is a link to the file content. When you remove a file, the content is not freed unless the link count is zero. This means that you can delete any given backup and the surrounding backups will remain intact.

Most of the turnkey rsync solutions are going to be Unix-based and need some fiddling to work under Cygwin bash. You can also roll your own. Michael Jakl has a good tutorial that explains the basics; in short, you start with this:

rsync -aP --link-dest=../$PREVIOUS_BACKUP $SOURCE qnap::backups/$NEW_BACKUP

And then write code around it to determine what your previous backup is, what your current backup should be, what to do when something fails, and when or if to remove older backups.

Note that the link-dest argument is relative to the destination. You don't specify the hostname in it.

As to your second question: there are many, many tools to sync files to a cloud. I use rclone and have no complaints. It supports many cloud providers and handles encryption well.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .