[LinuxFocus-icon]
<--  | ��ҳ  | վ���ͼ  | ����  | ����

���� | �����ڿ� | ���� | ����LF
This document is available in: English  Castellano  ChineseGB  Deutsch  Francais  Nederlands  Russian  Turkce  Polish  

Brian Hone
by Brian Hone
<bhone(at)eink.com>

��������:

Brian Hone �� E Ink ��˾��ϵͳ����Ա������������Ա����ҵ��ʱ�䣬Brian ϲ���ڱ��� ��ˮ�г��˻���ȥ���ҡ�


Ŀ¼:

 

Rsync: ��ʷ������õı���ϵͳ

RSYNC Backup

ÕªÒª:

������ϵͳ���������ޡ������ױ����ԵĹ���֮һ��ͬʱҲ������Ҫ�Ĺ���֮һ�������Ƿ���Ӳ�����ϡ��Ƿ����ֺ�ϵͳ��ȫ�������в�����ն��û������һ�����ߡ������౸��ϵͳ��ֵ��ǧ��Ԫ������ʹ�õ������� Bug ��ר�а�Ȩ���������ݴ��밺��ĴŴ����У���ʵ�����и��õķ�����Rsync �����۵Ĵ������С�

_________________ _________________ _________________

 

����

�ҿ��Ը���һ���������б�˵��������ϵͳ����Ա�����ʡ������������ϵͳ����Ա�Ļ����ҿ��ܾͲ������ˡ���Щԭ������������г��������ϵİ���Ӳ�������ڹ����İ����������ָ���汾���ļ����ķѵĴ���ʱ�䡣������ǣ������򲻵��ѱ��������ݵ�ʱ�򣬱��ݹ���ͨ��ֻ�кܵ͵����ȼ�����������˱���/�ָ������п��ܻᷢ������ĶԻ���

�û�: "�Ҷ���һ���ļ�������Ҫ�����̰����һ�����"
ϵͳ����Ա: "Ok, �ļ�����ʲô?"
�û�: "�Ҳ��ǵ���, ��ֻ�ǵ��ļ�������һ����ĸ��'e'��"
ϵͳ����Ա: "Ok, ��ô�����ĸ�Ŀ¼��?"
�û�: "�Ҳ�֪��, ����������ЩĿ¼���е�һ����"
ϵͳ����Ա: "Ŷ... �����Ƿ�ǵ����ϴ�ʹ������ļ�������?"
�û�: "��....����Ӧ���Ƕ��»������µ�һ�������ġ���ʲô������? ������Ӧ���Ѿ�������ϵͳ����Ӧ������������ɡ�"

 

���Ʒ Rsync

Rsync ��һ��С�ɵ��㷨��ǿ��ʵ�֡���������Ĺ����Ǹ�Ч�ؾ���һ���ļ�ϵͳ��������ʹ�� rsync����������ѡ��һ������Э�飬���� nfs��smb �� ssh���������һ���ļ�ϵͳ����һ���ļ�ϵͳ����ͬ�����¡�Rsync �ĵڶ������ܣ�Ҳ���DZ���ϵͳʹ�õĹ��ܣ������԰��Ѿ������ı���DZ�ɾ�����ļ����ϵİ汾�鵵��Rsync �Ĺ���̫���ˣ�������������һһ����������ǿ�ҽ�������Ķ� rsync.samba.org �ϵ��������ж� rsync��

 

����ϵͳ

�򵥵�˵���������ϵͳʹ�������۵� Linux ��������ʹ�������۵Ĵ��̺�һ����Ϊ rsync �Ķ�С�� shell �ű���[ͼ 1] �����б��ݵ�ʱ�����Ǹ��� rsync ����һ����Ϊ 'YY-MM-DD' ��Ŀ¼����Ϊ�洢�仯�����ĵط���֮��rsync ���Ҫ���ݵķ������ϵı仯�����һ���ļ������˱仯���Ͱ��ϵİ汾���Ƶ�����Ŀ¼��������������Ŀ¼�е��ļ���[ͼ 2]

RSYNC ±¸·Ý¹ý³Ì

ͨ��һ��ı仯������ֻռ�����ļ�ϵͳ��һ����С�İٷֱȡ����߷����������ֵƽ���� 0.5% �� 1%��������ʹ��һ�������ڷ������ļ�ϵͳ�ijߴ�Ĵ��̣����ǿ�����Ӳ���ϱ��� 50-100 ����������ݡ����������ˣ�ֻҪ��һ���µĴ����滻�ϵľͿ����ˡ���ʵ�ʲ����У������Ͽ��ܿ��Ա��泬������������������ݡ���ʵ�ϣ���������ҵ�һЩ�洢�ռ䣬�����ڸ�������֮ǰ���������ݸ��ƹ�ȥ��ʹ�����ַ�����������ڴ����ϱ��������������������ݡ�

ÔöÁ¿ÎļþÊÇÈçºÎ´¦ÀíµÄ  

���ƣ��������ѻָ����ļ���ԭ

�ص���ͷ���Ǹ�����ĶԻ������ڻ������صĻ��ڴŴ��ı���ϵͳ������һ���������µ���������������� Linux ���������ص������ء�ʹ����ϲ���� locate/find/grep ����ϣ�������ҳ����е���������������Ǹ��û��Ŀ��ܷ���������ļ��������ļ����а��� 'e'��ʱ����Ƕ��»����µ�һ�������ģ������Ƿŵ����� home Ŀ¼�µ�һ��Ŀ¼�С����������ҳ��Ǹ��汾���ļ����û���Ҫ���Ǹ��ļ�������ͳ�Ϊ��������ϲ����һ�����⡪�����˵����⡣

��������һ������ϲ���ij���-- ��ȫ�Ĺ��ϡ���������һ����� nfs/samba ���������˹��ϣ����ˣ�������Ѿ���������� samba ���ã������������ı��ݷ�������Ϊ���Ϸ�������һ��������֮�ڵ�ֻ��������������������Կ��ɲ������ôŴ�������һ�㡣

 

Rsync/Ӳ�̱���ϵͳ�ʹŴ�����ϵͳ�ıȽ�

  �Ŵ����� Rsync
�ɱ� �dz��� ��
��ȫ���� �� ��
�������� �� ��
��ȫ�ָ� �dz���������λ�ڶ���Ŵ��� �� -- ȫ�ڴ�����
�ļ��ָ� ��������λ�ڶ���Ŵ��ϣ����Բ�����ȷ�İ汾 �dz��� - ȫ��λ�ڴ����ϣ����������ʹ�� UN*X ������ find, locate, grep �Ȳ��ҹ��ߵ�ǿ����
��ȫ���� Ψһ��ѡ������ȫ�ָ� �ڹؼ�ʱ�̱��ݷ�����������Ϊ�������ļ�������
 

�õ��Ĺ���

�кܶ෽�����������ϵͳ�����еĹ��߶��ǿ�Դ�ģ�������һ����׼�� Linux ������֮�У����ҷdz���������������һ���������ã����������Ψһ�ķ�����

 

��дΪ�ű�

����ű��Ļ�����ʽ������ rsync ����վ����ʵֻ��һ�����

rsync --force --ignore-errors --delete --delete-excluded --exclude-from=exclude_file --backup --backup-dir=`date +%Y-%m-%d` -av

�ؼ��IJ����ǣ�

����Ľű�ͨ�� Linux �ڽ��� cron ���ܣ�����ÿ�������Զ����С�����Ҫ�ó���ÿ������ 11 �����У�ʹ��"crontab -e"���Ȼ�����룺

0 23 * * * /path/to/your/script

 

�ű�t

�������ҵ� shell �����Ľű�����˵һ�Σ��кܶ಻ͬ�ķ�������������Щ����ֻ�����е�һ��ʵ�ְ汾��

#!/bin/sh

#########################################################
# Script to do incremental rsync backups
# Adapted from script found on the rsync.samba.org
# Brian Hone 3/24/2002
# This script is freely distributed under the GPL
#########################################################

##################################
# Configure These Options
##################################

###################################
# mail address for status updates
#  - This is used to email you a status report
###################################
MAILADDR=your_mail_address_here

###################################
# HOSTNAME
#  - This is also used for reporting
###################################
HOSTNAME=your_hostname_here

###################################
# directory to backup
# - This is the path to the directory you want to archive
###################################
BACKUPDIR=directory_you_want_to_backup

###################################
# excludes file - contains one wildcard pattern per line of files to exclude
#  - This is a rsync exclude file.  See the rsync man page and/or the
#    example_exclude_file
###################################
EXCLUDES=example_exclude_file

###################################
# root directory to for backup stuff
###################################
ARCHIVEROOT=directory_to_backup_to

#########################################
# From here on out, you probably don't  #
#   want to change anything unless you  #
#   know what you're doing.             #
#########################################

# directory which holds our current datastore
CURRENT=main

# directory which we save incremental changes to
INCREMENTDIR=`date +%Y-%m-%d`

# options to pass to rsync
OPTIONS="--force --ignore-errors --delete --delete-excluded \
 --exclude-from=$EXCLUDES --backup --backup-dir=$ARCHIVEROOT/$INCREMENTDIR -av"

export PATH=$PATH:/bin:/usr/bin:/usr/local/bin

# make sure our backup tree exists
install -d $ARCHIVEROOT/$CURRENT

# our actual rsyncing function
do_rsync()
{
   rsync $OPTIONS $BACKUPDIR $ARCHIVEROOT/$CURRENT
}

# our post rsync accounting function
do_accounting()
{
   echo "Backup Accounting for Day $INCREMENTDIR on $HOSTNAME:">/tmp/rsync_script_tmpfile
   echo >> /tmp/rsync_script_tmpfile
   echo "################################################">>/tmp/rsync_script_tmpfile
   du -s $ARCHIVEROOT/* >> /tmp/rsync_script_tmpfile
   echo "Mail $MAILADDR -s $HOSTNAME Backup Report < /tmp/rsync_script_tmpfile"
   Mail $MAILADDR -s $HOSTNAME Backup Report < /tmp/rsync_script_tmpfile
   echo "rm /tmp/rsync_script_tmpfile"
   rm /tmp/rsync_script_tmpfile
}

# some error handling and/or run our backup and accounting
if [ -f $EXCLUDES ]; then
	if [ -d $BACKUPDIR ]; then
		# now the actual transfer
		do_rsync && do_accounting
	else
		echo "cant find $BACKUPDIR"; exit
	fi
	else
		echo "cant find $EXCLUDES"; exit
fi
 

������Դ

 

����ƪ���·�������

ÿƪ���¶��и��Եķ���ҳ�档�����ҳ����������ύ���ۣ�Ҳ���Բ鿴�������ߵ����ۣ�
 ï¿½ï¿½ï¿½ï¿½Ò³ï¿½ï¿½ 

<--, back to the index of this issue

��ҳ��LinuxFocus�༭��ά��
© Brian Hone, FDL
LinuxFocus.org
������Ϣ:
en --> -- : Brian Hone <bhone(at)eink.com>
en --> cn: ���� <gnawux(at)21.com>

2004-02-18, generated by lfparser version 2.46