用RSYNC创建自己的Slackware资源库

Author:Cherife Li

前言:

有多台slackware服务器?每次更新软件包都很不方便?升级安装slackware系统不方便?……
相信这些问题一定有人遇到过,做一个自己的slackware资源库,可以节约很多资源。动手吧:)

1.安装rsync软件包。

一般在安装系统的时候都直接把他装上,如果当初没有安装,可以在安装盘的slackware/n目录下找到它,upgradepkg --install-new rsync*.tgz,或者去http://rsync.samba.org/download.html下载它,自行编译安装。这里我们只用它的客户端功能,不用做服务端的配置,故到此OK了。

2.同步

RSYNC是一款强大的备份系统,它的具体功能和实现可以参阅有关资料。这里我只叙述如何用它来进行同步远程服务器上的slackware软件包到本地。 首先,写一个script,如下:
#!/bin/bash
# Define a valid Slackware Linux Version.
# NOTE: If you want to use Slackware Linux Current,set VERSION to 'current' (VERSION=current).
VERSION=11.0

# Choose the faster one from the sites below and un-comment it.

#SOURCE="rsync://rsync.slackware.at/slackware/slackware-$VERSION"
#SOURCE="rsync://ftp.ntua.gr/pub/linux/slackware/slackware-$VERSION"
#SOURCE="rsync://ftp.slackware.com/slackware/slackware-$VERSION"
#SOURCE="rsync://alphageek.dyndns.org/slackware/slackware-$VERSION"
#SOURCE="rsync://rsync.vbfx.com/slackware/slackware-$VERSION"
#SOURCE="rsync://slackware.ipal.net/slackware-$VERSION"
SOURCE="rsync://rsync.transamrit.net/slackware/slackware-$VERSION"
#SOURCE="rsync://slackware.mirrors.tds.net/slackware/slackware-$VERSION"
#SOURCE="rsync://closeedge.net/slackware/slackware-$VERSION"
#SOURCE="rsync://alphageek.dyndns.org/slackware/slackware-$VERSION"
#SOURCE="rsync://rsync.unspunproductions.com:8730/slackware/slackware-$VERSION"
#SOURCE="rsync://inferno.vbi.vt.edu/slackware/slackware-$VERSION"
#SOURCE="rsync://ftp.linuxslackers.org/slackware/slackware-$VERSION"
#SOURCE="rsync://rsync.unspunproductions.com:8730/slackware/slackware-$VERSION"
#SOURCE="rsync://drazi.geo.uib.no/slackware/slackware-$VERSION"
#SOURCE="rsync://carroll.cac.psu.edu/slackware/slackware-$VERSION"
#SOURCE="rsync://inferno.bioinformatics.vt.edu/slackware/slackware-$VERSION"

#What do the OPTIONS and EXCLUDE parameters below mean? Please check the RSYNC manpages for details.
#And you can also make your own definitions.

OPTIONS="-avzH --delete --delete-before"

EXCLUDE="--exclude=slackware/kde --exclude=slackware/kdei --exclude=slackware/x --exclude=slackware/xap --exclude=slackware/y --exclude=slackware/e --exclude=slackware/f --exclude=slackware/t --exclude=slackware/tcl --exclude=bootdisks --exclude=extra --exclude=testing --exclude=pasture --exclude=source --exclude=zipslack"

# Here define the destination path where the repository to be stored.
DEST="/home/mirror/slackware"

case "$1" in
"-check" )
echo "Checking..."
/usr/bin/rsync $OPTIONS $EXCLUDE --dry-run $SOURCE $DEST
;;
"-download" )
echo "Downloading..."
/usr/bin/rsync $OPTIONS $EXCLUDE $SOURCE $DEST
;;
* )
echo "Usage: `basename $0` {-c|-d}"
echo -e "\t-check : To check for updates"
echo -e "\t-download : To download updates"
exit
;;
esac
然后,就可以用它来同步。下面给一个参考命令:
#{path-to-the-script} -check 1> /dev/null 2>> [the-path-of-file-to-store-the-error-messages] && {path-to-the-script} -download 1> /dev/null 2>> [the-path-of-file-to-store-the-error-messages]
OK了,等着它同步吧。当然,你也可以把它放到crontab里定时自动运行。
The End.


Valid XHTML & CSS|©2008 dOtImes.cOm, All rights reserved.|Creative Commons|Firefox
Google™ Powered
Posted and Maintained by Cherife Li
Last Update: Sunday, 2007-10-07, 0:49, GMT+0800.