Wondering how to preserve permissions in rsync? We can help you.
Often after migration, it becomes a tedious task to compare and set the permissions of files/folders as in the source server.
To make this easy we can preserve the permissions while migrating using rsync.
Here at Bobcares, we use rsync to make migration requests of our customers hassle-free.
Today let’s see how our Support Techs do this for our customers as a part of our Server Management Services.
Preserving Permissions in rsync
Did you know that rsync is a powerful file and folder synchronization tool in Linux?
The advantage of rsync is that instead of copying data blindly, it compares the source and destination directories so that only the difference between the two is sent through the network (or between volumes).
Before going to the commands for preserving permissions in rsync we will see some of the features of rsync.
Key features of rsync are:
- Rsync lets us update entire directory trees and filesystems, ensuring that the source and destination are in sync.
- Rsync can optionally preserve symbolic links, hard links, file ownership, permissions, devices, and timestamps during the synchronization process.
- It does not require any special privileges for installation, making it accessible to a wide range of users.
- Rsync’s internal pipelining reduces latency when transferring multiple files, improving overall performance.
- Rsync supports various transport methods, including rsh, ssh, or direct sockets. It lets us choose the most appropriate option for our needs.
- Furthermore, it supports anonymous mirroring, which is useful for setting up public file mirrors.
Methods to preserve permissions in rsync
In order to preserve permissions, we will use -p flag (–perms).
The -p or –perms flag preserves the permissions of the files and directories being transferred.
We can also use -a flag (–archive), which is an aggregation of -p and several other useful ones.
Archive mode consists of the following flags:
-r, --recursive recurse into directories -l, --links Copy symlinks as symlinks -p, --perms Preserve permissions -t, --times Preserve times -g, --group Preserve group -o, --owner Preserve owner (super-user only) -D, --devices --specials Preserve devices (super-user only) +files
‘rsync -a’ option preserves the permissions, ownership, timestamp of files and folders that are to be transferred using rsync.
To transfer a file or folder from source to destination using rsync, we use the format:
rsync source destination
To preserve the above-mentioned permissions, ownership, and timestamp we can use the following command:
rsync -avz source destination
- -a: Enable archive mode to preserve permissions, ownership, and timestamps
- -v: Provide verbose output
- -z: Compress the data during transfer
This will synchronize the two folders or files and will also maintain the same timestamp as that of the source.
To test whether the rsync has been done right we can check the permission of files in a folder in the source destination using the following command:
ls -al
It’s important to note that rsync copies the numerical user ID of the file, regardless of whether the user exists on the target system or not.
This means that if the user ID does not exist on the destination, the file ownership may not be preserved as expected.
In such cases, we have to make sure that the necessary user accounts exist on the destination system or use additional options like –chown to set the desired ownership.
[Need assistance to use rsync? We can help you]
Conclusion
In short, we saw how our Support Techs use rsync to preserve permissions.
0 Comments