站内搜索:
首页 >> 技术频道 >> 用 Windows 2003 + IIS 6 作 debian 和 ubuntu 的镜像站
用 Windows 2003 + IIS 6 作 debian 和 ubuntu 的镜像站
作者: 来源: 日期: 2007-2-27,21:20

用 Windows 2003 + IIS 6 作 debian 和 ubuntu 的镜像站

最近 CoolCode.CN 的服务器又换了,从浪潮的服务器换到了 hp 的服务器,比原来多了一个光纤存储,虽然不是很大,但也有 500 多 G 的空间了。所以,打算把原来学校的 debian 镜像站点换到这台机器上,因为原来放学校 debian 镜像站点的服务器空间很小,只有 60 多 G,不能做完全镜像。现在好了,可以做个完全的镜像了。这台服务器是 Windows 2003 + IIS 6 做的虚拟主机,目前好像还没有任何 debian 和 ubuntu 镜像站点是基于 Windows 系统的,我这也算是前无古人了,而且,网上也没有这方面的资料可以查,所以,我打算把如何来用 Windows 2003 + IIS 6 作 debian 和 ubuntu 的镜像站的过程写下来,希望对有同样需要的朋友有所帮助。

作镜像的工具有 2 个,一个是 wget,另一个是 rsync,还好,这两个都有 Windows 版本,而且都很容易安装,wget for Windows 只有一个文件,放到 Windows 目录下,就跟内部命令一样用了。不过做镜像最好的工具还是 rsync。 它的 for Windows 版叫 cwRsync,这个下载以后直接安装就可以了。然后,就是选择提供 rsync 服务的最快和最全的 debian 和 ubuntu 站点了,当然,不一定非要从一个站点来同步所有内容,你可以选择多个站点来进行同步。我选择了如下的站点进行同步:

debian: ftp.jp.debian.org/debian/, debian.nctu.edu.tw/debian/
debian-non-US: ftp.jp.debian.org/debian-non-US/, debian.nctu.edu.tw/debian-non-US/
debian-security: ftp2.de.debian.org/debian-security/, debian.nctu.edu.tw/debian-security/
debian-cd: ftp.jp.debian.org/debian-cd/
ubuntu: archive.ubuntu.com/ubuntu/
ubuntu-releases: releases.ubuntu.com/releases/

这几个站点速度都还比较快,内容全,更新频率也高。ubuntu 直接就是选的官方地址。

debian 官方提供的同步脚本是个 linux 上的 shell 脚本。在 Windows 上没有办法用,我把它转化成了 Windows 的 cmd 格式,下面是 debian 的同步脚本:

@ECHO OFF
TITLE rsync-debian.cmd
SETLOCAL
SET CWRSYNCHOME=C:\Program Files\cwRsync
SET CYGWIN=nontsec
SET HOME=%HOMEDRIVE%%HOMEPATH%
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%

SET TO=F:\debian\debian\
SET RSYNC_TO=/cygdrive/f/debian/debian/
REM SET RSYNC_HOST=ftp.jp.debian.org
SET RSYNC_HOST=debian.nctu.edu.tw
SET RSYNC_DIR=debian/
SET LOGDIR=F:\log
SET EXCLUDE=

SET HOSTNAME=%COMPUTERNAME%
SET LOCK=%TO%\Archive-Update-in-Progress-%HOSTNAME%
SET LOGFILE=%LOGDIR%\debian-mirror.log

IF NOT EXIST "%TO%\project\trace" MD "%TO%\project\trace"
IF EXIST "%LOCK%" (
ECHO %HOSTNAME% is unable to start rsync, lock file exists
) ELSE (
ECHO.>"%LOCK%"

rsync --recursive --links --hard-links --times --verbose --delete --exclude Archive-Update-in-Progress-%HOSTNAME% --exclude project/trace/%HOSTNAME% %EXCLUDE% %RSYNC_HOST%::%RSYNC_DIR% %RSYNC_TO%>>"%LOGFILE%"

date /t>"%TO%\project\trace\%HOSTNAME%"
time /t>>"%TO%\project\trace\%HOSTNAME%"
DEL /F "%LOCK%"
)

执行它就可以进行同步了。这里 /cygdrive/f/debian/debian/ 表示的是 F:\debian\debian 目录,因为 rsync 是在 cygwin 环境下运行的,所以,要用 /cygdrive/f/ 这种形式来表示 F:\ 。这里是把站点内容同步到 F:\debian\debian 目录下,日志记录到 F:\log 目录下了,所以,要保证这两个目录存在。

当同步执行完毕后,就可以在 IIS 下建站点了,跟建立普通的虚拟主机站点的方式一样,但不需要任何执行权限,只需要读取和浏览权限就可以了。这样你就可以有个基于 IIS 的 debian 镜像站了。之后,把这个 cmd 脚本加到计划任务里就可以进行定时同步了。

另外,为了优化网速,目前已经对 CoolCode.CN 做了策略路由,现在教育网的同学访问 CoolCode.CN 下的所有站点时,都是直接走教育网的路由了,速度应该会加快不少。非教育网的用户仍然走百灵的路由。不过目前学校也已经有了网通和电信的出口,不久以后,可能就会把虚拟主机的非教育网出口换成网通和电信,到时候非教育网的用户访问本站的速度应该也会加快了。

· AWStats在II.. - 2/27/07
· Installing..webabc - 2/27/07
· AWStats 安装..phzzy - 2/27/07
· 《双剑合璧》真龙行天.. - 2/24/07
· 精简版的win2k(.. - 2/22/07
· Windows Vi..JosephPhoto - 2/22/07
· 小品相声集锦《策划》.. - 2/19/07
· 2007中央电视台春.. - 2/19/07
· 2007中央电视台春.. - 2/19/07
· 一个挺好用的远程控制.. - 2/17/07