rsync stands for remote sync.
rsync is used to perform the
backup operation in UNIX / Linux.
Syntax
$ rsync options source destination
Source and destination
could be either local or remote. In case of remote, specify the login name,
remote server name and location.
Example 1. Synchronize Two Directories in a Local Server
To sync two directories
in a local computer, use the following rsync -zvr command.
$ rsync -zvr /var/opt/installation/inventory/ /root/temp
building file list ... done
In the above rsync example:
§ -z is to enable compression
§ -v verbose
§ -r indicates recursive
2. Preserve timestamps during Sync using rsync -a
rsync option -a
indicates archive mode. -a option does the following,
§ Recursive mode
§ Preserves symbolic links
§ Preserves permissions
§ Preserves timestamp
§ Preserves owner and group
Now, executing the same
command provided in example 1 (But with the rsync option -a) as shown below:
Example 3. Synchronize Only One File
To copy only one file,
specify the file name to rsync command, as shown below.
$ rsync -v /var/lib/rpm/Pubkeys /root/temp/
Pubkeys
Example 4. Synchronize Files From Local to Remote
rsync allows you to
synchronize files/directories between the local and remote system.
$ rsync -avz /root/temp/ thegeekstuff@192.168.200.10:/home/thegeekstuff/temp/
Password:
building file list ... done
Example 5. Synchronize Files From Remote to Local
When you want to
synchronize files from remote to local, specify remote path in source and local
path in target as shown below.
$ rsync -avz thegeekstuff@192.168.200.10:/var/lib/rpm /root/temp
Password:
receiving file list ... done
Example 6. Remote shell for Synchronization
rsync allows you to
specify the remote shell which you want to use. You can use rsync ssh to enable
the secured remote connection.
Use rsync -e ssh to
specify which remote shell to use. In this case, rsync will use ssh.
$ rsync -avz -e ssh thegeekstuff@192.168.200.10:/var/lib/rpm /root/temp
Password:
receiving file list ... done
Example 7. Do Not Overwrite the Modified Files at the
Destination
In a typical sync
situation, if a file is modified at the destination, we might not want to
overwrite the file with the old file from the source.
Use rsync -u option to
do exactly that. (i.e do not overwrite a file at the destination, if it is
modified). In the following example, the file called Basenames is already
modified at the destination. So, it will not be overwritten with rsync -u.
$ ls -l /root/temp/Basenames
total 39088
-rwxr-xr-x 1 root root 4096 Sep 2 11:35 Basenames
$ rsync -avzu thegeekstuff@192.168.200.10:/var/lib/rpm /root/temp
Password:
receiving file list ... done
Example 8. Synchronize only the Directory Tree Structure
(not the files)
Use rsync -d option to
synchronize only directory tree from source to the destination. The below
example, synchronize only directory tree in recursive manner, not the files in
the directories.
$ rsync -v -d thegeekstuff@192.168.200.10:/var/lib/ .
Password:
receiving file list ... done
Example 9. View the rsync Progress during Transfer
When you use rsync for
backup, you might want to know the progress of the backup. i.e how many files
are copies, at what rate it is copying the file, etc.
rsync –progress option
displays detailed progress of rsync execution as shown below.
$ rsync -avz --progress thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp/
Password:
receiving file list ...
19 files to consider
Example 10. Delete the Files Created at the Target
If a file is not
present at the source, but present at the target, you might want to delete the
file at the target during rsync.
In that case, use
–delete option as shown below. rsync delete option deletes files that are not
there in source directory.
# Source and target are in sync. Now creating new file at the target.
$ > new-file.txt
$ rsync -avz --delete thegeekstuff@192.168.200.10:/var/lib/rpm/ .
Password:
receiving file list ... done
Target has the new file called new-file.txt, when synchronize
with the source with –delete option, it removed the file new-file.txt
Example 11. Do not Create New File at the Target
If you like, you can
update (Sync) only the existing files at the target. In case source has new
files, which is not there at the target, you can avoid creating these new files
at the target. If you want this feature, use –existing option with rsync
command.
First, add a
new-file.txt at the source.
[/var/lib/rpm ]$ > new-file.txt
Next, execute the rsync
from the target.
$ rsync -avz --existing root@192.168.1.2:/var/lib/rpm/ .
root@192.168.1.2's password:
receiving file list ... done
Example 13. Include and Exclude Pattern during File
Transfer
rsync allows you to
give the pattern you want to include and exclude files or directories while
doing synchronization.
$ rsync -avz --include 'P*' --exclude '*' thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp/
Password:
receiving file list ... done
Example 14. Do Not Transfer Large Files
You can tell rsync not
to transfer files that are greater than a specific size using rsync –max-size
option.
$ rsync -avz --max-size='100K' thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp/
Password:
receiving file list ... done
max-size=100K makes rsync to transfer only the files that are
less than or equal to 100K. You can indicate M for megabytes and G for
gigabytes.
Example 15. Transfer the Whole File
One of the main feature
of rsync is that it transfers only the changed block to the destination,
instead of sending the whole file.
If network bandwidth is
not an issue for you (but CPU is), you can transfer the whole file, using rsync
-W option. This will speed-up the rsync process, as it doesn’t have to perform
the checksum at the source and destination.
# rsync -avzW thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp
Password:
receiving file list ... done
No comments:
Post a Comment