Difference between revisions of "Rsync"

From ArchWiki
Jump to: navigation, search
m
m (As a backup utility)
Line 27: Line 27:
 
{{File|name=/etc/cron.daily/backup|content=
 
{{File|name=/etc/cron.daily/backup|content=
 
#!/bin/bash
 
#!/bin/bash
rsync -a -r --delete /folder/to/backup /location/to/backup &> /dev/null}}
+
rsync -a --delete /folder/to/backup /location/to/backup &> /dev/null}}
  
 
; {{Codeline|-a}} : means files are archived
 
; {{Codeline|-a}} : means files are archived
; {{Codeline|-r}} : means files are copied recursively
 
 
; {{Codeline|--delete}} : means files deleted on the source are deleted on the backup
 
; {{Codeline|--delete}} : means files deleted on the source are deleted on the backup
  

Revision as of 20:48, 17 November 2009

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

Installation

# pacman -S rsync

Usage

As a cp alternative

rsync can readily be used as an advanced cp alternative, specifically 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 to some removable media.

First, create a script containing the appropriate command options:

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

Template:File

Template:Codeline 
means files are archived
Template:Codeline 
means files deleted on the source are deleted on the backup

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 example).

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

Finally, the script must be executable:

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

For more examples, search Google for 'rsync backup script' or search the Community Contributions and General Programming Forum forums.