Linux 同步上游源

主要分为 debian 系和 rh 系,分别以 Ubuntu 和 CentOS 为代表。

ubuntu

使用 apt-mirror 这个 perl 脚本来同步上游的源:

# apt-get install apt-mirror

该工具默认是在 /var/spool/apt-mirror 下同步源。这里将其改为在 /opt 下:

# mkdir /opt/ubuntu
# mkdir /opt/ubuntu/{mirror,skel,var}
# cat /etc/apt/mirror.list
set base_path    /opt/ubuntu
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 nthreads     20
set defaultarch  amd64
set _tilde 0

deb http://mirrors.ustc.edu.cn/ubuntu/ lucid main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ lucid-backports main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ lucid-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ lucid-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ lucid-updates main restricted universe multiverse

设置完成,开始同步:

# apt-mirror

使用 cron 来定时执行:

* 5    * * *    root    /usr/bin/apt-mirror >> /opt/ubuntu/var/cron.log

centos

# crontab -e

* 0 * * * rsync   -avrt rsync://mirrors.sohu.com/centos/5.6/ –exclude=i386/  /opt/centos/5.6/

或者写成像下面这样的脚本扔到 cron 里面去执行。

#!/bin/bash

MIRROR="rsync://mirrors.sohu.com/centos/"
PATH="/oyou gcentos"

rsync -avrt –bwlimit 256 –exclude *.iso –exclude *.orig.tar.gz ${MIRROR} ${PATH}

这里有个更详细的脚本配置,可以参考。
 

  • http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack freetstar

    apt-mirror 这样以来就很方便了,同步完得要10G空间把?

    • jaseywang

      单一个 amd64 就 30G 了。。。