FreeOS.com logo

FreeOS Most Popular
* Most Read stories
* Commented Stories
* Active Categories
* Non Linux Section
* User Submitters
* Top Polls
* Top Authors
* Top Reviews
* Top Rated
* Top Search Terms

Top Articles
* Writing a Linux device driver
* The Linux filesystem explained
* Samba NT Domain Controller
* Setting up Squid as your caching HTTP/FTP proxy
* Web server tutorial - Part 1

FreeOS Highlights
* Howtos (72)
* Reviews (20)
* Opinions (18)
* Interviews (8)
* News (3)

My FreeOS

Nick:
Pass:
Register

Forgot your password?

Contact Us
Contact Us

       

Project: Linux triangle Howtos triangle

Using Rsync

By Vans Information <content@vansinfo.com>
Posted: ( 2001-05-15 00:12:29 EST by mayank )

Rsync is a fast, flexible and robust backup utility. This article looks at how you can utilize and configure this program to take the daily backup from your production servers.

This article is basically written for Rsync, a very fast, flexible and robust backup utility. We will look at how you can utilize and configure this program to take the daily backup from your production servers.

What is Rsync?

Rsync is a program, which is used for taking the backups on regular basis. However it can also be configured to upload large portals and any other data on the remote servers. It is very similar to rcp but with many more features. It is based on remote-update protocols, which means that it only sees the differences between the source and destination files and if the files has been changed, takes the backup otherwise leaves it without taking any backup. This difference may be the time stamp difference i.e. the date when it was modified or created is changed. By virtue of which it speeds up the file transfers even if it is of several gigabytes.

It can be used to copy files from remote machines to local machines and vice versa in which one of the machine must be local. It can also be utilized to take the backup locally to different partitions.

Command to check if Rsync is installed on the machine
# rpm -q Rsync
# rsync-2.4.1-2

It means that the Rsync installed on the machine is version 2.4.1-2. If it doesn't display and says not installed then you first have to install Rsync on the server side. Once installed you can use Rsync to any machine that you can use rsh to. Rsync uses rsh for its communications, unless both the source and destination are local.

To install Rsync give the command
#rpm -Uvh rsync-2.4.1-2.i386.rpm

In order to run an Rsync program you must have to run Rsync daemon at the server. This is accomplished either running the command
#rsync --daemon
or you can edit two files if you want rsyncd daemon to run when system boots.
1. Append the following text in /etc/services file, if not already there: rsync 873/tcp


2. Make an entry in /etc/inetd.conf by putting the line

rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon

Replace the "/usr/bin/rsync" with the path where you have installed the rsync. Its a good idea to run the rsync daemon during the boot time when you have to use rsync very often. During the boot time it initiates the rsyncd daemon through the super server i.e inetd.

Rsync configuration files

There are three configuration files to run rsync server viz.
1. /etc/rsyncd.conf,
2. /etc/rsyncd.pid
3. /etc/rsyncd.secrets
1. /etc/rsyncd.conf file configurations:

When you run Rsync with --daemon mode /etc/rsyncd.conf is the runtime configuration file through inetd daemon. This way rsync becomes an rsync server listening on TCP port 873. Connections from Rsync clients are accepted for either anonymous or authenticated Rsync sessions. The rsyncd.conf file controls authentication, access, logging and available modules.

File Format of rsyncd.conf:
The file consists of modules and parameters. A module begins with the name of the module in square brackets and continues until the next module begins. Modules contain parameters of the form 'name = value'. For more information about format you can read out the man pages of rysncd.conf

The contents of a /etc/rsyncd.conf file may be:

#### rsyncd.conf file ####
uid = username 
gid = usergid
pid file = /etc/rsyncd.pid 
syslog facility = daemon 
[modulename]  #Module name could be any name 
path = /path/to/yourdata 
comment = user related any info 
auth users = anonymous username 
hosts allow = x.x.x.x
secrets file =/etc/rsyncd.secrets 
max connection = 0 
use chroot = true 
timeout = 60 
#### End of configuration file ####

The file contains hundreds of options; we will only discuss only those, which are important and generally used. The file contains some global parameters like motd, syslog etc. Others are module related. In the above configuration, a square bracket represents the module for a particular dir, which is generally backed up. Comments are any user related info. The "auth users" gives the details of the users who can use this module. The "hosts allow" specifies the clients which can connect to server. "Secrets file" gives the username & password of the user connecting, "max connections" represents the maximum number of clients which can connect simultaneously. If "use chroot" is true, the Rsync server will chroot to the "path" before starting the file transfer with the client. Timeout option is for I/O timeout for this module.

2. The file /etc/rsyncd.secrets can be like this containing the username and password with a colon in between on the client side i.e.

username : yourpassword

3. To create an empty file /etc/rsyncd.pid to place the process related arguments.

Some examples of how you can run rsync from the client side are as follows:

#rsync -avzrpog username@hostname.domain::modulename /path/to/put-data --password-file=/root/password --safe-links

This will retrieve all the data from the module "modulename" at the host "hostname" to my local machine. The options -avzrog are used to get the data in an archive(a), verbose(v), recursive(r), preserver permissions(p),preserver owner(o),preserver group(g). Also for a server to check whether it is running Rsync server or not.

You can put such lines according to your requirement in a file and run through cron.

#rsync hostname.domain:: This will list out all the modules running on the server.

NOTE: The above configurations have been tested on Red hat Linux 6.2 kernel 2.2.14. For more information please read man rsync, rsyncd.conf

Other articles by Vans Information

Current Rating: [ 5.67 / 10 ] Number of Times Rated: [ 125 ]

More Howtos
* Kernel Compilation & Avoiding ‘Unresolved Symbol’
* Configuring CVS and CVSUP on Linux
* Knoppix installation tips
* Maximum Mount
* A WebServer Guide -- Help Using Apache

Contents
Articles
  Howtos
  Interviews
  News
  Opinions
  Reviews
Comparison
Links
  Articles
  Howtos
  Interviews
  Opinions
  Reviews
  Websites
News

Linux
About Linux

Print It!
Printer Friendly Version