Difference between revisions of "Rsync"

From ArchWiki
Jump to: navigation, search
(As a backup utility)
(Differential backup on a week)
Line 70: Line 70:
  
 
DAY=$(date +%A)
 
DAY=$(date +%A)
 +
 +
if [ -e /location/to/backup/incr/$DAY ] ; then
 +
  rm -fr /location/to/backup/incr/$DAY
 +
fi
  
 
rsync -a --delete --inplace --backup --backup-dir=/location/to/backup/incr/$DAY /folder/to/backup/ /location/to/backup/full/ &> /dev/null}}
 
rsync -a --delete --inplace --backup --backup-dir=/location/to/backup/incr/$DAY /folder/to/backup/ /location/to/backup/full/ &> /dev/null}}
  
 
; {{Codeline|--inplace}} : implies {{Codeline|--partial}} update destination files in-place
 
; {{Codeline|--inplace}} : implies {{Codeline|--partial}} update destination files in-place

Revision as of 14:03, 16 April 2010

rsync is an open source utility that provides fast incremental file transfer.

Installation

Install the Template:Package Official package using pacman:

# pacman -S rsync

Usage

For more examples, search the Community Contributions and General Programming forums.

As a cp alternative

rsync can readily be used as an advanced cp alternative, specially useful for copying larger files:

$ rsync -P src dest

The Template:Codeline option is the same as Template:Codeline, which keeps partially transferred files and shows a progress bar during transfer.

As a backup utility

The rsync protocol can easily be used for backups, only transferring files that have changed since the last backup. This section describes a very simple scheduled backup script using rsync, typically used for copying to removable media. For a more thorough example, see Full System Backup with rsync.

Automated backup

For the sake of this example, the script is created in the Template:Filename directory, and will be run on a daily basis if a cron daemon is installed and properly configured. Configuring and using cron is outside the scope of this article.

First, create a script containing the appropriate command options: Template:File

Template:Codeline 
indicates that files should be archived, meaning that all of their attributes are preserved
Template:Codeline 
means files deleted on the source are to be deleted on the backup aswell

Here, Template:Filename should to be changed to what needs to be backed-up (Template:Filename, for example) and Template:Filename is where the backup should be saved (Template:Filename, for instance).

Finally, the script must be executable:

# chmod +x /etc/cron.daily/rsync.backup

Automated backup with SSH

If backing-up to a remote host using SSH, use this script instead: Template:File

Template:Codeline 
tells rsync to use SSH
Template:Codeline 
is the user on the host Template:Codeline
Template:Codeline 
group all this options Template:Codeline recursive, links, perms, times, group, owner, devices


Automated backup with NetworkManager

This action automated backup when you plugin your wire.

First, create a script containing the appropriate command options: Template:File

Template:Codeline 
group all this options Template:Codeline recursive, links, perms, times, group, owner, devices
Template:Codeline 
read the relative path of /folder/to/backup from this file
Template:Codeline 
limit I/O bandwidth; KBytes per second

Differential backup on a week

This is a useful option of rsync, created a full backup and a differential backup for each day of a week.

First, create a script containing the appropriate command options: Template:File

Template:Codeline 
implies Template:Codeline update destination files in-place