因为我只提供了 Debian/Ubuntu/Deepin 几个发行版的部分镜像源,其实并没有什么好说的。就简单地记录一下过程吧。
一、准备磁盘空间
这里强烈建议使用LVM分区,冗余容灾什么的先不谈,最重要的是后续的空间扩展。
这里是几个目录占用的空间大小:
1 2 3 4 5 6 7 |
# du -hs * 173G debian 7.0G debian-security 24G deepin 288G ubuntu ##Notice:以上包括debian stable/testing,Ubuntu 14.04/15.04,Deepin trusty版本的i386、amd64以及源码部分。 |
至于具体的LVM配置,以后会写博文详细介绍。
二、选择合适的同步源
对于 Debian/Ubuntu这些国外发行版来说,如果和官方服务器进行同步,绝对会急死人的。
建议是,先选择一个国内的镜像源同步,将大部分包先同步到本地,之后在换回和官方源同步,毕竟后面每次只有一点小改动。(因为是教育网,所以我们选择了中科大的源 http://mirrors.ustc.edu.cn)
三、选择同步工具 - apt-mirror
因为目前支持的都是apt源,所以我直接使用了apt-mirror这个软件。
当然,更多的站点可能选择了rsync或者ftp与官方服务器进行同步。但我们为了速度,先通过http同步了USTC的源。
其他工具暂未了解,以后用过了再来写吧。
四、apt-mirror简单配置
1、默认模版: /etc/apt/mirror.list
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
/* * file: /etc/apt/mirror.list */ ############# config ################## # # set base_path /var/spool/apt-mirror # # set mirror_path $base_path/mirror # set skel_path $base_path/skel # set var_path $base_path/var # set cleanscript $var_path/clean.sh # set defaultarch <running host architecture> # set postmirror_script $var_path/postmirror.sh # set run_postmirror 0 set nthreads 20 set _tilde 0 # ############# end config ############## deb http://ftp.us.debian.org/debian unstable main contrib non-free deb-src http://ftp.us.debian.org/debian unstable main contrib non-free # mirror additional architectures #deb-alpha http://ftp.us.debian.org/debian unstable main contrib non-free #deb-amd64 http://ftp.us.debian.org/debian unstable main contrib non-free #deb-armel http://ftp.us.debian.org/debian unstable main contrib non-free #deb-hppa http://ftp.us.debian.org/debian unstable main contrib non-free #deb-i386 http://ftp.us.debian.org/debian unstable main contrib non-free #deb-ia64 http://ftp.us.debian.org/debian unstable main contrib non-free #deb-m68k http://ftp.us.debian.org/debian unstable main contrib non-free #deb-mips http://ftp.us.debian.org/debian unstable main contrib non-free #deb-mipsel http://ftp.us.debian.org/debian unstable main contrib non-free #deb-powerpc http://ftp.us.debian.org/debian unstable main contrib non-free #deb-s390 http://ftp.us.debian.org/debian unstable main contrib non-free #deb-sparc http://ftp.us.debian.org/debian unstable main contrib non-free clean http://ftp.us.debian.org/debian |
2、我们的配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
/* * file: /etc/apt/mirror.list */ ############# config ################## # set base_path /srv/mirrors #设置基本路径 set mirror_path $base_path/mirror #下面三个目录需要提前建好 set skel_path $base_path/skel set var_path $base_path/var set cleanscript $var_path/clean.sh #clean脚本 set defaultarch amd64 #默认架构,我们这里是amd64 set postmirror_script $var_path/postmirror.sh # set run_postmirror 0 set nthreads 20 #同步时启用的线程数 set _tilde 0 # ############# end config ############## ####################################### ######## Ubuntu 14.04 (trusty) ######## ####################################### deb-amd64 http://mirrors.ustc.edu.cn/ubuntu/ trusty main restricted universe multiverse deb-amd64 http://mirrors.ustc.edu.cn/ubuntu/ trusty-security main restricted universe multiverse deb-amd64 http://mirrors.ustc.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse deb-amd64 http://mirrors.ustc.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse deb-amd64 http://mirrors.ustc.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse deb-i386 http://mirrors.ustc.edu.cn/ubuntu/ trusty main restricted universe multiverse deb-i386 http://mirrors.ustc.edu.cn/ubuntu/ trusty-security main restricted universe multiverse deb-i386 http://mirrors.ustc.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse deb-i386 http://mirrors.ustc.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse deb-i386 http://mirrors.ustc.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty-security main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse ###################################### ######## Ubuntu 15.04 (vivid) ######## ###################################### deb-amd64 http://mirrors.ustc.edu.cn/ubuntu/ vivid main restricted universe multiverse deb-amd64 http://mirrors.ustc.edu.cn/ubuntu/ vivid-security main restricted universe multiverse deb-amd64 http://mirrors.ustc.edu.cn/ubuntu/ vivid-updates main restricted universe multiverse deb-amd64 http://mirrors.ustc.edu.cn/ubuntu/ vivid-proposed main restricted universe multiverse deb-amd64 http://mirrors.ustc.edu.cn/ubuntu/ vivid-backports main restricted universe multiverse deb-i386 http://mirrors.ustc.edu.cn/ubuntu/ vivid main restricted universe multiverse deb-i386 http://mirrors.ustc.edu.cn/ubuntu/ vivid-security main restricted universe multiverse deb-i386 http://mirrors.ustc.edu.cn/ubuntu/ vivid-updates main restricted universe multiverse deb-i386 http://mirrors.ustc.edu.cn/ubuntu/ vivid-proposed main restricted universe multiverse deb-i386 http://mirrors.ustc.edu.cn/ubuntu/ vivid-backports main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ vivid main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ vivid-security main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ vivid-updates main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ vivid-proposed main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ vivid-backports main restricted universe multiverse ########################################## ######## Debian 8 (stable,jessie) ######## ########################################## deb-amd64 http://mirrors.ustc.edu.cn/debian jessie main contrib non-free deb-amd64 http://mirrors.ustc.edu.cn/debian jessie-proposed-updates main contrib non-free deb-amd64 http://mirrors.ustc.edu.cn/debian jessie-updates main contrib non-free deb-amd64 http://mirrors.ustc.edu.cn/debian-security/ jessie/updates main non-free contrib deb-i386 http://mirrors.ustc.edu.cn/debian jessie main contrib non-free deb-i386 http://mirrors.ustc.edu.cn/debian jessie-proposed-updates main contrib non-free deb-i386 http://mirrors.ustc.edu.cn/debian jessie-updates main contrib non-free deb-i386 http://mirrors.ustc.edu.cn/debian-security/ jessie/updates main non-free contrib deb-src http://mirrors.ustc.edu.cn/debian jessie main contrib non-free deb-src http://mirrors.ustc.edu.cn/debian jessie-proposed-updates main contrib non-free deb-src http://mirrors.ustc.edu.cn/debian jessie-updates main contrib non-free deb-src http://mirrors.ustc.edu.cn/debian-security/ jessie/updates main non-free contrib ########################################## ###### Debian 8 (testing, stretch) ####### ########################################## deb-amd64 http://mirrors.ustc.edu.cn/debian testing main contrib non-free deb-amd64 http://mirrors.ustc.edu.cn/debian testing-proposed-updates main contrib non-free deb-amd64 http://mirrors.ustc.edu.cn/debian testing-updates main contrib non-free deb-amd64 http://mirrors.ustc.edu.cn/debian-security/ testing/updates main non-free contrib deb-i386 http://mirrors.ustc.edu.cn/debian testing main contrib non-free deb-i386 http://mirrors.ustc.edu.cn/debian testing-proposed-updates main contrib non-free deb-i386 http://mirrors.ustc.edu.cn/debian testing-updates main contrib non-free deb-i386 http://mirrors.ustc.edu.cn/debian-security/ testing/updates main non-free contrib deb-src http://mirrors.ustc.edu.cn/debian testing main contrib non-free deb-src http://mirrors.ustc.edu.cn/debian testing-proposed-updates main contrib non-free deb-src http://mirrors.ustc.edu.cn/debian testing-updates main contrib non-free deb-src http://mirrors.ustc.edu.cn/debian-security/ testing/updates main non-free contrib ################################# ########## Deepin Linux ######### ################################# deb-i386 http://mirrors.ustc.edu.cn/deepin trusty main universe non-free deb-amd64 http://mirrors.ustc.edu.cn/deepin trusty main universe non-free deb-src http://mirrors.ustc.edu.cn/deepin trusty main universe non-free ## 下面是考虑清理的目录,运行clean脚本的时候需要用的这些设置。 clean http://mirrors.ustc.edu.cn/ubuntu clean http://mirrors.ustc.edu.cn/debian clean http://mirrors.ustc.edu.cn/deepin clean http://mirrors.ustc.edu.cn/debian-security |
3、我们的运行脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/bin/sh # filename: update-mirror.sh # Date: 20150522 # Author: King's Way <[email protected]> #### path config #### log_path=/srv/mirrors/log # 日志保存目录,请提前建立好 log_file=$log_path/$(date +'%Y%m%d-%H:%M').log # 具体的日志文件名 #### Web protal #### /root/web_auth.sh >> $log_file # 我们学校需要网页认证,这里运行了那个脚本 #### Update mirrors of Debian/Ubuntu/Deepin #### apt-mirror >>$log_file 2>>$log_file # 运行apt-mirror进行同步 /srv/mirrors/var/clean.sh >>$log_file 2>>$log_file # 执行清理操作 #### Delete old logs #### find $log_path -mtime +7 -exec rm -rf {} \; # 删除一周前的日志 |
4、最后添加cron定时任务就OK了。
1 2 3 4 5 |
# crontab -e ... ... 1 */2 * * * "/root/update_mirror.sh" ## 这里每两个小时运行一次 |
后记:
这次搭建的过程很简单,用的是现成的软件,很方便。(其实rsync更方便,不过官方源速度太慢)
以后会陆续增加其他发行版的镜像源,前提是我们的硬盘还撑得下。。。
还有,再次感谢USTC的源。
四.3 中的一些脚本命令可以再详细讲解下