ºìÁªLinuxÃÅ»§
Linux°ïÖú

ʹÓÃrsync´Ólinuxµ½linux»òµ½windows¶ÔÍøÕ¾½øÐоµÏñ±¸·Ý

·¢²¼Ê±¼ä:2008-04-10 09:42:49À´Ô´:ºìÁª×÷Õß:Syah
rsyncÊÇLinuxϵͳϵÄÊý¾Ý¾µÏñ±¸·Ý¹¤¾ß£¬´ÓÈí¼þµÄÃüÃûÉϾͿÉÒÔ¿´³öÀ´ÁË----remote sync¡£rsyncÖ§³Ö´ó¶àÊýµÄÀàUnixϵͳ£¬ÎÞÂÛÊÇLinux¡¢Solaris»¹ÊÇBSDÉ϶¼¾­¹ýÁËÁ¼ºÃµÄ²âÊÔ¡£rsyncµÄ×îа汾¿ÉÒÔ´Óhttp://rsync.samba.org/rsync/»ñµÃ¡£ËüµÄÌØÐÔÈçÏ£º
1¡¢¿ÉÒÔ¾µÏñ±£´æÕû¸öĿ¼Ê÷ºÍÎļþϵͳ¡£
2¡¢¿ÉÒÔºÜÈÝÒ××öµ½±£³ÖÔ­À´ÎļþµÄȨÏÞ¡¢Ê±¼ä¡¢ÈíÓ²Á´½ÓµÈµÈ¡£
3¡¢ÎÞÐëÌØÊâȨÏÞ¼´¿É°²×°¡£
4¡¢ÓÅ»¯µÄÁ÷³Ì£¬Îļþ´«ÊäЧÂʸߡ£
5¡¢¿ÉÒÔʹÓÃrcp¡¢sshµÈ·½Ê½À´´«ÊäÎļþ£¬µ±È»Ò²¿ÉÒÔͨ¹ýÖ±½ÓµÄsocketÁ¬½Ó¡£
±¾ÎĽéÉÜÁËÈçºÎʹÓÃrsync·þÎñ´ÓLinuxµ½WindowsºÍlinux½øÐÐÔ¶³Ì±¸·Ý

Ò»¡¢ÅäÖ÷þÎñÆ÷¶Ë

Èí¼þÏÂÔØ
rysncµÄÖ÷Ò³µØÖ·Îª£ºhttp://rsync.samba.org/£¬¿ÉÒÔ´ÓÕâÀïÏÂÔØrysnµÄ°²×°Èí¼þ¡£

±àÒë°²×°
rsyncµÄ±àÒë°²×°·Ç³£¼òµ¥£¬Ö»ÐèÒªÒÔϼòµ¥µÄ¼¸²½£¨ÔÚÁ½Ì¨·þÎñÆ÷Öж¼Òª°²×°£©£º

$ tar xvf rsync-2.6.5.tgz
$ cd rsync-2.6.5
$ ./configure
$ make
$ make install

µ«ÊÇÐèҪעÒâµÄÊDZØÐëÔÚÖ÷·þÎñÆ÷ºÍͬ²½·þÎñÆ÷É϶¼°²×°rsync£¬ÆäÖÐÖ÷·þÎñÆ÷ÉÏÊÇÒÔ·þÎñÆ÷ģʽÔËÐÐrsync£¬¶øÍ¬²½ÉÏÔòÒÔ¿Í»§¶Ë·½Ê½ÔËÐÐrsync¡£ÕâÑùÔÚÖ÷·þÎñÆ÷ÉÏÔËÐÐrsynÊØ»¤½ø³Ì£¬ÔÚͬ²½ÉÏÓÃcrond¶¨Ê±ÔËÐпͻ§³ÌÐòÀ´Í¬²½Ö÷·þÎñÆ÷ÉÏÐèҪͬ²½µÄÄÚÈÝ¡£

ÅäÖÃrsync·þÎñÆ÷¶Ë

¶ÔÓÚrsync·þÎñÆ÷À´Ëµ£¬×îÖØÒªºÍ¸´ÔӵľÍÊÇËüµÄÅäÖÃÁË¡£rsync·þÎñÆ÷µÄÅäÖÃÎļþΪ/etc/rsyncd.conf£¬Æä¿ØÖÆÈÏÖ¤¡¢·ÃÎÊ¡¢ÈÕÖ¾¼Ç¼µÈµÈ¡£¸ÃÎļþÊÇÓÉÒ»¸ö»ò¶à¸öÄ£¿é½á¹¹×é³É¡£Ò»¸öÄ£¿é¶¨ÒåÒÔ·½À¨»¡ÖеÄÄ£¿éÃû¿ªÊ¼£¬Ö±µ½ÏÂÒ»¸öÄ£¿é¶¨Ò忪ʼ»òÕßÎļþ½áÊø£¬Ä£¿éÖаüº¬¸ñʽΪname=valueµÄ²ÎÊý¶¨Ò塣ÿ¸öÄ£¿éÆäʵ¾Í¶ÔÓ¦ÐèÒª±¸·ÝµÄÒ»¸öĿ¼Ê÷£¬±È·½ËµÔÚÎÒÃǵÄʵÀý»·¾³ÖУ¬ÓÐÈý¸öĿ¼Ê÷ÐèÒª±¸·Ý£º/www/ºÍ/mirror/file0/ºÍ/mirror/file1/Ŀ¼£¬ÄÇô¾ÍÐèÒªÔÚÅäÖÃÎļþÖж¨ÒåÈý¸öÄ£¿é£¬·Ö±ð¶ÔÓ¦Èý¸öĿ¼Ê÷¡£ÅäÖÃÎļþÊÇÐÐΪµ¥Î»µÄ£¬Ò²¾ÍÊÇÿ¸öÐÂÐж¼±íʾһ¸öеÄ×¢ÊÍ¡¢Ä£¿é¶¨Òå»òÕß²ÎÊý¸³Öµ¡£


ÀýÈ磬ÔÚ168ÉÏ´´½¨rsyncdµÄÅäÖÃÎļþ/etc/rsyncd.conf£¬ÄÚÈÝÈçÏ£º

uid = nobody # ±¸·ÝÒÔʲôÉí·Ý½øÐУ¬Óû§ID
gid = nobody # ±¸·ÝÒÔʲôÉí·Ý½øÐУ¬×éID
#×¢ÒâÕâ¸öÓû§IDºÍ×éID£¬Èç¹ûÒª·½±ãµÄ»°£¬¿ÉÒÔÉèÖóÉroot£¬ÕâÑùrsync¼¸ºõ¾Í¿É
#ÒÔ¶ÁÈ¡ÈκÎÎļþºÍĿ¼ÁË£¬µ«ÊÇÒ²´øÀ´°²È«Òþ»¼¡£½¨ÒéÉèÖóÉÖ»ÄܶÁÈ¡ÄãÒª±¸
#·ÝµÄĿ¼ºÍÎļþ¼´¿É¡£

#use chroot = no
max connections = 0 # ×î´óÁ¬½ÓÊýûÓÐÏÞÖÆ
pid file = /var/log/rsync/rsyncd.pid
lock file = /var/log/rsync/rsync.lock
log file = /var/log/rsync/rsyncd.log

[attachment] # Ö¸¶¨ÈÏÖ¤µÄ±¸·ÝÄ£¿éÃû
path = /www/htdocs/pub/attachment/ # ÐèÒª±¸·ÝµÄĿ¼
comment = BACKUP attachment # ×¢ÊÍ
ignore errors # ºöÂÔһЩÎ޹صÄIO´íÎó
read only = false # ÉèÖÃΪ·ÇÖ»¶Á
list = false # ²»ÔÊÐíÁÐÎļþ
#hosts allow = 210.51.0.80 #ÔÊÐíÁ¬½Ó·þÎñÆ÷µÄÖ÷»úIPµØÖ·
#hosts deny = 0.0.0.0/0.0.0.0 #½ûÖ¹Á¬½Ó·þÎñÆ÷µÄÖ÷»úIPµØÖ·
auth users = msyn # ÈÏÖ¤µÄÓû§Ãû£¬Èç¹ûûÓÐÕâÐУ¬Ôò±íÃ÷ÊÇÄäÃû
secrets file = /etc/rsyncd.scrt # ÈÏÖ¤ÎļþÃû£¬ÓÃÀ´´æ·ÅÃÜÂë

[98htdocs]
uid = nobody
gid = nobody

path = /www/htdocs/
#ignore errors
read only = false
list = false
#hosts allow = 210.51.0.98
#hosts deny = 202.108.211.38
#hosts deny = 0.0.0.0/0.0.0.0
auth users = msyn
secrets file = /etc/rsyncd.scrt

[98html]
uid = ejbftp
gid = nobody
path = /www/htdocs/pub/html/
#ignore errors
read only = false
list = false
#hosts allow = 210.51.0.98
#hosts deny = 0.0.0.0/0.0.0.0
auth users = 98syn
secrets file = /etc/rsync98.scrt

ÕâÀï·Ö±ð¶¨ÒåÁË[attachment]¡¢[98htdocs]¡¢[98html]Èý¸öÄ£¿é£¬·Ö±ð¶ÔÓ¦ÓÚÈý¸öÐèÒª±¸·ÝµÄÄ¿Ê÷¡£Èý¸öÄ£¿éÊÚȨµÄ±¸·ÝÓû§·Ö±ðΪmsyn£¬msyn£¬98syn£¬Óû§ÐÅÏ¢±£´æÔÚÎļþ/etc/rsyncd.scrtºÍ/etc/rsync98.scrtÖУ¬ÆäÄÚÈÝÈçÏ£º

[root@www /etc]# cat /etc/rsyncd.scrt
msyn:xxxxxxxxx

²¢ÇÒ¸ÃÎļþÖ»ÄÜÊÇrootÓû§¿É¶ÁдµÄ£¬×¢Ò⣬³öÓÚ°²È«Ä¿µÄ£¬Õâ¸öÎļþµÄÊôÐÔ±ØÐèÊÇÖ»ÓÐÊôÖ÷¿É¶Á£¬·ñÔòrsync½«¾Ü¾øÔËÐС£ÎÒÃÇ¿ÉÒÔÉèÖÃËüµÄÊôÐÔΪ600£º

[root@www /etc]# chmod 600 /etc/rsyncd.scrt

[root@www /etc]# mkdir /var/log/rsync

ÕâЩÎļþÅäÖÃÍê±ÏÒԺ󣬾ÍÐèÒªÔÚÖ÷·þÎñÆ÷ÉÏÆô¶¯rsyncd·þÎñ£º

[root@www /etc]# /usr/local/bin/rsync --daemon

Ö´ÐÐÍê±ÏÉÏÃæµÄÃüÁîºó£¬rsync¼´¿ÉÆô¶¯¡£rsyncĬÈÏ·þÎñ¶Ë¿ÚΪ873£¬·þÎñÆ÷Ôڸö˿ڽÓÊÕ¿Í»§µÄÄäÃû»òÕßÈÏÖ¤·½Ê½µÄ±¸·ÝÇëÇó¡£

¶þ¡¢ÅäÖÿͻ§¶Ë

1¡¢linuxÏÂÖ´ÐÐrsync¿Í»§¶ËÃüÁî

ÏÂÒ»²½¾ÍÒªÔËÐÐrsync¿Í»§¶ËµÄÆô¶¯ÃüÁîÁË£º

[backup@backup /] /usr/bin/rsync -vlzrtogp --progress --delete 98syn@x.x.x.168::98html /usr/local/apache/htdocs/pub/html/ --password-file=/etc/rsync98.scrt

ÉÏÃæÕâ¸öÃüÁîÐÐÖÐ-vzrtopgÀïµÄvÊÇ´ú±íverbose(Ïêϸ)£¬zÊÇ´ú±ízip£¨Ñ¹Ëõ£©£¬rÊÇ´ú±írecursive£¨µÝ¹é£©£¬topg¶¼ÊDZ£³ÖÎļþÔ­ÓÐÊôÐÔÈçÊôÖ÷¡¢Ê±¼äµÄ²ÎÊý¡£--progressÊÇÖ¸ÏÔʾ³öÏêϸµÄ½ø¶ÈÇé¿ö£¬--deleteÊÇÖ¸Èç¹û·þÎñÆ÷¶Ëɾ³ýÁËÕâÒ»Îļþ£¬ÄÇô¿Í»§¶ËÒ²ÏàÓ¦°ÑÎļþɾ³ý£¬±£³ÖÕæÕýµÄÒ»Ö¡£
98syn@x.x.x.168::98html ÊDZíʾ¸ÃÃüÁîÊǶԷþÎñÆ÷x.x.x.168ÖеÄ98htmlÄ£¿é½øÐб¸·Ý£¬ÆäÖÐ98syn±íʾʹÓÃ98synÓû§À´¶Ô¸ÃÄ£¿é½øÐб¸·Ý¡£--password-file=/etc/rsync98.scrtÀ´Ö¸¶¨ÃÜÂëÎļþ£¬ÕâÑù¾Í¿ÉÒÔÔڽű¾ÖÐʹÓöøÎÞÐè½»»¥Ê½µØÊäÈëÑéÖ¤ÃÜÂëÁË£¬ÕâÀïÐèҪעÒâµÄÊÇÕâ·ÝÃÜÂëÎļþȨÏÞÊôÐÔÒªÉèµÃÖ»ÓÐÖ´ÐÐÕâ¸öÃüÁîµÄµ±Ç°Óû§¿É¶Á£¬±¾ÀýÖÐÊÇ98synÓû§¡£ÕâÀォ±¸·ÝµÄÄÚÈÝ´æ·ÅÔÚ±¸·Ý»úµÄ/usr/local/apache/htdocs/pub/html/Ŀ¼Ï¡£

ÕâÑù£¬rsyncͬ²½·þÎñ¾Í´î½¨ºÃÁË£¬×îºóÎÒÃÇ¿ÉÒÔ½«ÔÚ¿Í»§¶ËÖ´ÐеÄÃüÁîͨ¹ýcrontab¶¨Ê±Ö´ÐÐÀ´ÊµÏÖ×Ô¶¯±¸·Ý£¬»òÕßдһЩ½Å±¾£¬ÕâÑùrsyncͬ²½·þÎñµÄ´î½¨¾Í¸ü¼ÓÍêÃÀÁË¡£

2¡¢WindowsÅäÖÿͻ§¶Ë

ΪÁËÔÚWindows»·¾³Ê¹ÓÃrsync¹¤¾ß£¬ÎÒÃÇÐèҪȥÏÂÔØcwRsync¹¤¾ß£¬ÕâÊÇÒ»¸örsync for windowsµÄ°æ±¾¡£

ÏÖÔÚÎÒÃÇ¿ÉÒÔÔÚWindows»·¾³ÏÂÔËÐÐrsync¹¤¾ßÁË£¬¾ÙÀýʹÓÃÏÂÃæµÄÃüÁîÁ¬½Ó·þÎñÆ÷²¢¿ªÊ¼±¸·ÝĿ¼ºÍÎļþ£º
rsync -vzrtopg --progress --delete 98syn@xx.xx.xx.xx::98html .\bak\
Ó¦¸Ã¿ÉÒÔ¿´µ½£º
password:

ÒªÇóÊäÈëÃÜÂëµÄÌáʾ£¬ÕýÈ·ÊäÈëÃÜÂëºó¾ÍÓ¦¸Ã¿´µ½¿ªÊ¼±¸·ÝÁË

ÒýÆðÕâÖÖ´íÎóÓм¸ÖÖ¿ÉÄÜÐÔ£¬Ò»ÊÇÄãûÓÐÊäÈëÕýÈ·µÄÓû§Ãû»òÃÜÂ룬¶þÊÇÄãµÄ·þÎñÆ÷¶Ë´æ´¢ÃÜÂëµÄÎļþûÓÐÕýÈ·µÄȨÏÞ£¬Ò²¾ÍÊÇÄãµÄÃÜÂëÎļþ²»ÊÇÀàËÆÕâÑù×ÓµÄȨÏÞ£º
-rw------- 1 root root

ÔÚ±¸·ÝÍê³ÉÖ®ºó

¿ÉÒÔ²ÉÓôÓÎļþ¶ÁÈ¡ÃÜÂëµÄ·½Ê½£º
rsync -vzrtopg --progress --delete 98syn@xx.xx.xx.xx::98html .\bak\ --password-file=.\rsync98.scrt
¿ÉÒÔд³ÉÅú´¦Àí£¬×öµ½windows¼Æ»®ÈÎÎñÀïÃæÈ¥£¬¿ÉÒÔ¶¨Ê±Ö´ÐÐÀ´ÊµÏÖ×Ô¶¯±¸·Ý¡£

ÄãÒ²¿ÉÒÔÔÚÕâÀïÏÂÔØcwRsync-1.2.8°æ£ºcwRsync_1.2.8_Installer.exe

×¢£º±¾ÎÄÒýÓõØÖ·£ºhttp://WWW.VFOCUS.NET/BLOG/mt-tb.cgi/6¡£Çë×ðÖØÔ­´´£¬ÈçÓÐ×ªÔØÇë×¢Ã÷³ö´¦¡£

ÆÀÂÛ
Ò»¡¢faq

q£ºÈçºÎͨ¹ýssh½øÐÐrsync£¬¶øÇÒÎÞÐëÊäÈëÃÜÂ룿
a£º¿ÉÒÔͨ¹ýÒÔϼ¸¸ö²½Öè

1. ͨ¹ýssh-keygenÔÚserver aÉϽ¨Á¢ssh keys£¬²»ÒªÖ¸¶¨ÃÜÂ룬Äã»áÔÚ~/.sshÏ¿´µ½identityºÍidentity.pubÎļþ
2. ÔÚserver bÉϵÄhomeĿ¼½¨Á¢×ÓĿ¼.ssh
3. ½«aµÄidentity.pub¿½±´µ½server bÉÏ
4. ½«identity.pub¼Óµ½~[user b]/.ssh/authorized_keys
5. ÓÚÊÇserver aÉϵÄaÓû§£¬¿Éͨ¹ýÏÂÃæÃüÁîÒÔÓû§b sshµ½server bÉÏÁË
e.g. ssh -l userb serverb
ÕâÑù¾Íʹserver aÉϵÄÓû§a¾Í¿ÉÒÔsshÒÔÓû§bµÄÉí·ÝÎÞÐèÃÜÂëµÇ½µ½server bÉÏÁË¡£

q£ºÈçºÎͨ¹ýÔÚ²»Î£º¦°²È«µÄÇé¿öÏÂͨ¹ý·À»ðǽʹÓÃrsync?
a£º½â´ðÈçÏ£º

Õâͨ³£ÓÐÁ½ÖÖÇé¿ö£¬Ò»ÖÖÊÇ·þÎñÆ÷ÔÚ·À»ðǽÄÚ£¬Ò»ÖÖÊÇ·þÎñÆ÷ÔÚ·À»ðǽÍâ¡£ÎÞÂÛÄÄÖÖÇé¿ö£¬Í¨³£»¹ÊÇʹÓÃssh£¬Õâʱ×îºÃн¨Ò»¸ö±¸·ÝÓû§£¬²¢ÇÒÅäÖÃsshd½öÔÊÐíÕâ¸öÓû§Í¨¹ýrsaÈÏÖ¤·½Ê½½øÈë¡£
Èç¹û·þÎñÆ÷ÔÚ·À»ðǽÄÚ£¬Ôò×îºÃÏÞ¶¨¿Í»§¶ËµÄipµØÖ·£¬¾Ü¾øÆäËüËùÓÐÁ¬½Ó¡£Èç¹û¿Í»§»úÔÚ·À»ðǽÄÚ£¬Ôò¿ÉÒÔ¼òµ¥ÔÊÐí·À»ðǽ´ò¿ªtcp¶Ë¿Ú22µÄsshÍâ·¢Á¬½Ó¾ÍokÁË¡£

q£ºÎÒÄܽ«¸ü¸Ä¹ý»òÕßɾ³ýµÄÎļþÒ²±¸·ÝÉÏÀ´Âð£¿
a£ºµ±È»¿ÉÒÔ£º

Äã¿ÉÒÔʹÓÃÈ磺rsync -other -options -backupdir = ./backup-2000-2-13 ...ÕâÑùµÄÃüÁîÀ´ÊµÏÖ¡£
ÕâÑùÈç¹ûÔ´Îļþ:/path/to/some/file.c¸Ä±äÁË£¬ÄÇô¾ÉµÄÎļþ¾Í»á±»ÒƵ½./backup-2000-2-13/path/to/some/file.c£¬
ÕâÀïÕâ¸öĿ¼ÐèÒª×Ô¼º

ÊÖ¹¤½¨Á¢ÆðÀ´

q£ºÎÒÐèÒªÔÚ·À»ðǽÉÏ¿ª·ÅÄÄЩ¶Ë¿ÚÒÔÊÊÓ¦rsync£¿
a£ºÊÓÇé¿ö¶ø¶¨

rsync¿ÉÒÔÖ±½Óͨ¹ý873¶Ë¿ÚµÄtcpÁ¬½Ó´«Îļþ£¬Ò²¿ÉÒÔͨ¹ý22¶Ë¿ÚµÄsshÀ´½øÐÐÎļþ´«µÝ£¬µ«ÄãÒ²¿ÉÒÔͨ¹ýÏÂÁÐÃüÁî¸Ä±äËüµÄ¶Ë¿Ú£º

rsync --port 8730 otherhost::
»òÕß
rsync -e 'ssh -p 2002' otherhost:

q£ºÎÒÈçºÎͨ¹ýrsyncÖ»¸´ÖÆÄ¿Â¼½á¹¹£¬ºöÂÔµôÎļþÄØ£¿
a£ºrsync -av --include '*/' --exclude '*' source-dir dest-dir

q£ºÎªÊ²Ã´ÎÒ×Ü»á³öÏÖ"read-only file system"µÄ´íÎóÄØ£¿
a£º¿´¿´ÊÇ·ñÍüÁËÉè"read only = no"ÁË

q£ºÎªÊ²Ã´ÎÒ»á³öÏÖ'@error: invalid gid'µÄ´íÎóÄØ£¿
a£ºrsyncʹÓÃʱĬÈÏÊÇÓÃuid=nobody;gid=nobodyÀ´ÔËÐеģ¬Èç¹ûÄãµÄϵͳ²»´æÔÚnobody×éµÄ»°£¬¾Í»á³öÏÖÕâÑùµÄ´íÎ󣬿ÉÒÔÊÔÊÔgid =nogroup»òÕ߯äËü

q£º°ó¶¨¶Ë¿Ú873ʧ°ÜÊÇÔõô»ØÊ£¿
a£ºÈç¹ûÄã²»ÊÇÒÔrootȨÏÞÔËÐÐÕâÒ»ÊØ»¤½ø³ÌµÄ»°£¬ÒòΪ1024¶Ë¿ÚÒÔÏÂÊÇÌØÈ¨¶Ë¿Ú£¬»á³öÏÖÕâÑùµÄ´íÎó¡£Äã¿ÉÒÔÓÃ--port²ÎÊýÀ´¸Ä±ä¡£

q£ºÎªÊ²Ã´ÎÒÈÏ֤ʧ°Ü£¿
a£º´ÓÄãµÄÃüÁîÐп´À´£º

ÄãÓõÄÊÇ£º
> bash$ rsync -a 144.16.251.213::test test
> password:
> @error: auth failed on module test
>
> i dont understand this. can somebody explain as to how to acomplish this.
> all suggestions are welcome.

Ó¦¸ÃÊÇûÓÐÒÔÄãµÄÓû§ÃûµÇ½µ¼ÖµÄÎÊÌ⣬ÊÔÊÔrsync -a max@144.16.251.213::test test

¶þ¡¢Ò»Ð©¿É½è¼øµÄ½Å±¾

ÕâÀïÕâЩ½Å±¾¶¼ÊÇrsyncÍøÕ¾ÉϵÄÀý×Ó£º

1¡¢Ã¿¸ôÆßÌ콫Êý¾ÝÍùÖÐÐÄ·þÎñÆ÷×öÔöÁ¿±¸·Ý

#!/bin/sh

# this script does personal backups to a rsync backup server. you will end up
# with a 7 day rotating incremental backup. the incrementals will go
# into subdirectories named after the day of the week, and the current
# full backup goes into a directory called "current"
# tridge@linuxcare.com

# directory to backup
bdir=/home/$user

# excludes file - this contains a wildcard pattern per line of files to exclude
excludes=$home/cron/excludes

# the name of the backup machine
bserver=owl

# your password on the backup server
export rsync_password=xxxxxx


########################################################################

backupdir=`date +%a`
opts="--force --ignore-errors --delete-excluded --exclude-from=$excludes
--delete --backup --backup-dir=/$backupdir -a"

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

# the following line clears the last weeks incremental directory
[ -d $home/emptydir ] || mkdir $home/emptydir
rsync --delete -a $home/emptydir/ $bserver::$user/$backupdir/
rmdir $home/emptydir

# now the actual transfer
rsync $opts $bdir $bserver::$user/current

2¡¢±¸·ÝÖÁÒ»¸ö¿ÕÏеÄÓ²ÅÌ

#!/bin/sh

export path=/usr/local/bin:/usr/bin:/bin

list="rootfs usr data data2"

for d in $list; do
mount /backup/$d
rsync -ax --exclude fstab --delete /$d/ /backup/$d/
umount /backup/$d
done

day=`date "+%a"`

rsync -a --delete /usr/local/apache /data2/backups/$day
rsync -a --delete /data/solid /data2/backups/$day

3¡¢¶Ôvger.rutgers.eduµÄcvsÊ÷½øÐоµÏñ

#!/bin/bash

cd /var/www/cvs/vger/
path=/usr/local/bin:/usr/freeware/bin:/usr/bin:/bin

run=`lps x | grep rsync | grep -v grep | wc -l`
if [ "$run" -gt 0 ]; then
echo already running
exit 1
fi

rsync -az vger.rutgers.edu::cvs/cvsroot/changelog $home/changelog

sum1=`sum $home/changelog`
sum2=`sum /var/www/cvs/vger/cvsroot/changelog`

if [ "$sum1" = "$sum2" ]; then
echo nothing to do
exit 0
fi

rsync -az --delete --force vger.rutgers.edu::cvs/ /var/www/cvs/vger/
exit 0

4¡¢ÀûÓÃfindµÄÒ»ÖÖÇÉÃʽ

rsync -avr remote:'`find /home -name "*.[ch]"`' /tmp/

¿ÉÒÔÓÃÕâÖÖ·½·¨ÁгöÐèÒª±¸·ÝµÄÎļþÁбí----ÕâÖÖ·½·¨Ëƺõ±È½ÏÉÙÈËÓõ½¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. shenhua_sjp ÓÚ 2008-05-21 19:54:30·¢±í:

    ºÃ¶«Î÷£¬linuxÏ·þÎñÆ÷±¸·Ý£¬Ò»°ãʹÓÃdumpµÄ¾µÏñ±¸·Ý´Å´ø»ú¡£Êý¾Ý¿â²ÉÓÃͬ²½±¸·Ý£¬²»¹ýȫϵͳµÄ±¸·ÝºÜÄÑ×öµ½¡£Ïêϸ¿´ÏÂ