




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在学校搞过ubuntu的镜像源, 没想到工作后继续维护镜 像源, 可谓有缘, 也是很是开心能为有需要的人尽点绵薄之力. 在这个过程中, 自己也学到很多记得一开始的学校那个服务器跑的是win 2003, 用xlight提供ftp服务, 为了便于管理, 给系统装上了cygwin. 在一开始摸索中, 尝试过lftp脚本去同步镜像源, 但lftp必须所有文件都扫描一次, 长时间的空闲连接就被服务器踢掉了.后来才知道普遍的做法是用rsync去同步, 在debian网站上提供了一个写的比较完善的rsync脚本该脚本提供了文件锁,进程锁等完善的处理, 稍微修改就非常合适用来同步各镜像源空间需求对于镜像服务器, 基本上是IO密集型, 对磁盘空间需求很大, 如果只需要提供常用的i386,amd64两种架构的软件包及常用版本 fedora需要300G左右 ubuntu需要250G左右 debian需要250G左右 gentoo需要100G左右 archlinux需要50G左右 centos需要150G左右 cygwin需要10G左右除此之外,还需要预留一定空间以保证不被新发布的版本或者大软件包塞爆硬盘.同步选择一般来说, 除非你服务器的空间几乎无限, 不然就得考虑排除没必要的架构和版本. 以debian为例debian现有alpha, amd64, arm, armel, hppa, hurd-i386, i386, ia64, m68k, mipsel, mips, powerpc, s390, sh and sparc这么多架构的软件包, 还有source代码包debian现有oldstable, stable, testing, unstable, 还有experimental版本的如此多的架构和版本, 我们要根据需要进行排除, rsync的exclude选项可以很好的完成这个任务, 有时遇到服务器端有问题的文件或者目录,也可以通过exclude选项跳过去.确定好需要同步的架构及版本后, 就需要找寻合适的同步对象, 一个发行版一般都有许多个镜像源, 但只有部分提供rsync服务, 在各自的官方网站一般都可以找到这些列表或者搭建镜像的帮助.镜像源之间是有一定的等级的, 一般会有一个总的最高级别的服务器(简称根服务器), 所有新的软件包会现出现在它上面,然后它下级的镜像源再来它这里同步, 然后还有下下级的镜像源来同步. 如果能直接同步根服务器, 那是最好的, 因为你能最快获得新的软件包, 但由于各种原因, 根服务器不一定对所有用户都开放rsync同步服务, 而是只允许特定ip列表才能访问其rsync服务(大部分发行版是这么作的). 一般来说, 主要是根据访问速度及对方服务器的软件包的滞后程度来选择同步对象, 国内开放rsync的开源镜像不多, 周边地区速度不错的有台湾和日本的服务器, 其他地方的速度就一般同步策略根据需要写好rsync脚本后, 就需要添加crontab, 以保持自动更新, 推荐做法是一天更新几次, 部分小源可以一天更新一次, 如果只想一天更新一次, 可以把时间放在深夜, 一般规律都是凌晨5,6点访问量最小, 在这段时间附近开始更新可以避开负载高峰.其他debian系的源, 源目录都有pool目录, 它存放所有软件包, 如果使用了debian的同步脚本, 或者在rsync同步时分两步,先同步这个目录,同步完成后再同步其他目录, 这样就可以有效的避免服务器同步时其他人访问会有一定几率出错的问题, 还有rsync的delete-after及delay-update选项, 都可以避免未完成的更新对用户造成影响贴下我稍微修改及注释的debian那个同步脚本#! /bin/shset-e# 此脚本由 /mirror/anonftpsync 修改而来# 需要原脚本可以自行下载# CVS: :/cvs/webwml - webwml/english/mirror/anonftpsync# Version: $Id: anonftpsync,v 1.43 2008-06-15 18:16:04 spaillar Exp $#增加mirror名变量,方便修改log名、lock名、mail信息MIRROR=opensuseRSYNC=/usr/bin/rsyncTO=/home/mirror/opensuseRSYNC_HOST=RSYNC_DIR=opensuse-hotstuff-160gbLOGDIR=/home/mirror.scripts/log# ARCH_EXCLUDE 控制需要排除的架构的包# 对于Debian,以下是包含的架构# alpha, amd64, arm, armel, hppa, hurd-i386, i386, ia64, m68k, mipsel, mips, powerpc, s390, sh and sparc# 一个比较特殊的值: source# 它将排除源代码包# 例子# ARCH_EXCLUDE=alpha arm armel hppa hurd-i386 ia64 m68k mipsel mips s390 sparc#对于opensuse:#这里应该是: x86_64 i586 i686 noarch sourceARCH_EXCLUDE=# EXCLUDE变量将排除更多需要排除的包,非得以不建议使用这个变量# The following example would exclude mostly everything:#EXCLUDE=# -exclude stable/ -exclude testing/ -exclude unstable/ # -exclude source/ # -exclude *.orig.tar.gz -exclude *.diff.gz -exclude *.dsc # -exclude /contrib/ -exclude /non-free/ # EXCLUDE=#mail地址#同步完成后把log发到指定邮箱,需要修改exim配置MAILTO=# LOCK_TIMEOUT是一个时间锁,以分钟为单位,默认锁6小时,即360分钟.# 脚本运行时将创建lock文件,以保证同时间内只有一个rsync再运行# 不同同步脚本的lock不能互相影响,以不同文件名区分.LOCK_TIMEOUT=360# RSYNC代理设置,一般不需要设置# RSYNC_PROXY=IP:PORT# export RSYNC_PROXY=$RSYNC_PROXY# 帐号密码设置# . ftpsync.conf# export RSYNC_PASSWORD# RSYNC_HOST=$RSYNC_USER$RSYNC_HOST# 检查各个重要变量是否为空if-z$TO|-z$RSYNC_HOST|-z$RSYNC_DIR|-z$LOGDIR|-z$RSYNC;thenechoOne of the following variables seems to be empty:echoTO, RSYNC_HOST, RSYNC_DIR or LOGDIRexit2fi#hostname变量,也可以手工指定HOSTNAME=hostname-f# HOSTNAME=mirror.domain.tld#LOCK文件,绝对路径,建议放在统一目录,便于管理LOCK=/home/mirror.scripts/lock/$MIRROR-Archive-Update-in-Progress-$HOSTNAME# 临时目录,由rsync -delay-updates 参数决定# 必须保留,以避免错误,同步时所有新下载的都自动存放在临时目录TMP_EXCLUDE=-exclude .tmp/# 架构排除变量的展开语句#以下是原脚本的,只适用debian系的部分发行版#for ARCH in $ARCH_EXCLUDE; do# EXCLUDE=$EXCLUDE# -exclude binary-$ARCH/ # -exclude disks-$ARCH/ # -exclude installer-$ARCH/ # -exclude Contents-$ARCH.gz # -exclude Contents-$ARCH.diff/ # -exclude arch-$ARCH.files # -exclude arch-$ARCH.list.gz # -exclude *_$ARCH.deb # -exclude *_$ARCH.udeb # if $ARCH = source ; then# SOURCE_EXCLUDE=# -exclude source/ # -exclude *.tar.gz # -exclude *.diff.gz # -exclude *.dsc # fi#done#以下是为opensuse专门修改的forARCHin$ARCH_EXCLUDE;doEXCLUDE=$EXCLUDE-exclude *.$ARCH.rpmif$ARCH=source;thenSOURCE_EXCLUDE=-exclude source/fidone#日志文件LOGFILE=$LOGDIR/$MIRROR-mirror.log# 可以使用下面的命名方式# LOGFILE=$LOGDIR/$(echo $RSYNC_DIR | tr / _)-mirror.log# LOGFILE=$LOGDIR/$RSYNC_DIR/_-mirror.logcd$HOMEumask002# 在第一次运行时创建trace文件,记录每次同步的时间记录# 只在Debian的镜像中发现有此文件,其他发行版一般不需要#if ! -d $TO/project/trace/ ; then# mkdir -p $TO/project/trace#fi# 判断是否有同一脚本的rsync在运行,可以避免上一同步还没完而起多一个同步进程if-f$LOCK;then# Note: this requires the findutils find; for other finds, adjust as necessaryiffind$LOCK-maxdepth 1 -cmin -$LOCK_TIMEOUT=;then# Note: this requires the procps ps; for other ps, adjust as necessaryifpsax|greprsync|grep-q$RSYNC_HOST;thenechostale lock found, but a rsync is still running, aiee!exit1elseechostale lock found (not accessed in the last$LOCK_TIMEOUTminutes), forcing update!rm-f$LOCKfielseechocurrent lock file exists, unable to start rsync!exit1fifi#生成locktouch$LOCK# 在部分非debian系统,需要用0代替exit# 捕捉退出信号,以删除lock# 脚本结尾也有一句同样效果的,这里起保证异常退出时能删除lock的作用# 单rsync错误,还是顺序执行到最后的rm,然后再触发这里的trap# 保证的是父进程的异常退出traprm -f$LOCKexit# 我根据需要加的,可在手工运行脚本时,捕捉ctrl+c# 这样能再按下ctrl+c后继续保存log及删除lock文件trap2set+e# 我根据需要加的,写个时间进log,方便查date+Start %F %T$LOGFILE# debian的原脚本把rsync分两步,先同步poor的内容# 其他发行版不需要这么做# timeout参数能在出现io错误时自动结速脚本,而不卡住# delay-updates参数:先把下载的数据放tmp目录,同步完再移到正确位置# 必须加此参数,可以避免未同步完的不完整包被用户下载导致错误# 对于第一次同步,建议增加-size-only及-ignore-existing,以增加同步速度(在经常断开的情况下)# 对于想删除不需要的exclude文件情况,可以增加-delete-excluded及-force(force用来强制删除空的不必要目录)$RSYNC-recursive-p-links-hard-links-times-progress-verbose-delay-updates-delete-after-timeout=3600$TMP_EXCLUDE$EXCLUDE$SOURCE_EXCLUDE$RSYNC_HOST:$RSYNC_DIR$TO/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-湖南-湖南中式烹调师二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北计算机操作员一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖北-湖北水工监测工一级(高级技师)历年参考题库典型考点含答案解析
- 文化产业园产业集聚与2025年服务体系升级路径研究报告
- 2025年事业单位工勤技能-湖北-湖北收银员二级(技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖北-湖北地质勘查员五级(初级工)历年参考题库典型考点含答案解析
- 农村金融服务体系与农村金融科技创新趋势研究报告
- 2025年事业单位工勤技能-海南-海南殡葬服务工四级(中级工)历年参考题库含答案解析
- 2025年共享办公工位预订系统市场前景与风险评估报告
- 2025年事业单位工勤技能-浙江-浙江水利机械运行维护工五级(初级工)历年参考题库含答案解析(5套)
- 抗菌药物临床应用指导原则(2023年版)
- 城市道路工程设计规范-局部修订稿(完整资料)
- 神的《全备之救》
- GA 38-2021银行安全防范要求
- 第一章数字印刷概述课件
- 【医院管理】-科研创新助推学科建设课件
- 《卷烟原料配方设计》配套教学课件
- 《新能源汽车驱动电机系统检测与维修习题册》 习题参考答案(劳动)
- 介入诊疗质量安全计划与指标
- 新课标高考英语词汇表3500
- 99S203 消防水泵接合器安装图集
评论
0/150
提交评论