使用脚本自建本地yum源

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用脚本自建本地yum源相关的知识,希望对你有一定的参考价值。

  有一段时间连不上网,搭建服务器测试环境所需要的远端yum源也无法连接,于是想到了自建一个本地的yum源来解决这个问题。搭建本地yum源需要两个东西:一个是web服务器,另一个就是rpm包及包元素据。

  搭建web服务器很简单,那么主要就是把远端的yum源镜像到本地,所以,找一块比较大的磁盘做好分区挂载到web服务器根目录下,然后执行脚本镜像远端数据到本地就可以了。根据自己的需求,我需要CentOS6和7两个版本的yum源,其中的源包括base、updates、extras和epel且不需要系统iso镜像。于是,连上一个速度快的网络开始同步吧!脚本的内容如下:

#!/bin/bash
## rsync mirror centos and epel with yun-idc 
## visit http://mirrors.yun-idc.com/centos/6/
##    http://mirrors.yun-idc.com/centos/7/
##    http://mirrors.yun-idc.com/epel/6/
##    http://mirrors.yun-idc.com/epel/7/
Rsync="/usr/bin/rsync"
Options="-azvL --exclude=SRPMS/ --exclude=xen --exclude=SCL/ --exclude=ppc64/  
--exclude=ppc/ --exclude=cr/ --exclude=fasttrack/ --exclude=isos/ --bwlimit=2000"
Reporoot="/var/www/html/centos"
Centos6base="$Reporoot/6/os/x86_64/"
Centos6updates="$Reporoot/6/updates/x86_64/"
Centos6extras="$Reporoot/6/extras/x86_64/"
Centos6plus="$Reporoot/6/centosplus/x86_64/"
Centos6epel="$Reporoot/epel/6/x86_64/"
Centos7base="$Reporoot/7/os/x86_64/"
Centos7updates="$Reporoot/7/updates/x86_64/"
Centos7extras="$Reporoot/7/extras/x86_64/"
Centos7plus="$Reporoot/7/centosplus/x86_64/"
Centos7epel="$Reporoot/epel/7/x86_64/"
Logdir="$Reporoot/logs/"
Date=`date +%Y-%m-%d`
Dateis=`date +%F-%H:%M:%S`
Logfile="$Logdir/$Date.log"
Resultfile="$Logdir/$Date.log.res"
Checkres(){
    if [ $? == 0 ];then
    echo -e "\033[1;32m $1 Rsync is success! $Dateis\033[0m" >> $Resultfile
  else
    echo -e "\033[1;31m $1 Rsync is fail! $Dateis\033[0m" >> $Resultfile
  fi
}
Checkdir(){
  if [ ! -d $1 ];then
    mkdir -p $1
  fi
}
Checkdir $Logdir
Rsyncrepo(){
  Checkdir $2
  $Rsync $Options $1 $2 |tee $Logfile
  Checkres $1
}
Rsyncrepo rsync://mirrors.yun-idc.com/centos/6/os/x86_64/ $Centos6base
Rsyncrepo rsync://mirrors.yun-idc.com/centos/6/updates/x86_64/ $Centos6updates
Rsyncrepo rsync://mirrors.yun-idc.com/centos/6/extras/x86_64/ $Centos6extras
#Rsyncrepo rsync://mirrors.yun-idc.com/centos/6/centosplus/x86_64/ $Centos6plus
Rsyncrepo rsync://mirrors.yun-idc.com/centos/7.2.1511/os/x86_64/ $Centos7base
Rsyncrepo rsync://mirrors.yun-idc.com/centos/7.2.1511/updates/x86_64/ $Centos7updates
Rsyncrepo rsync://mirrors.yun-idc.com/centos/7.2.1511/extras/x86_64/ $Centos7extras
#Rsyncrepo rsync://mirrors.yun-idc.com/centos/7.2.1511/centosplus/x86_64/ $Centos7plus
Rsyncrepo rsync://mirrors.yun-idc.com/epel/6/x86_64/ $Centos6epel
Rsyncrepo rsync://mirrors.yun-idc.com/epel/7/x86_64/ $Centos7epel

接下来配置客户端指向本地yum源就好了,配置文件内容如下:

[base]
name=CentOS-$releasever - Base
baseurl=http://$host/centos/$releasever/os/$basearch/
    http://mirrors.aliyun.com/centos/$releasever/os/$basearch
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates 
[updates]
name=CentOS-$releasever - Updates
baseurl=http://$host/centos/$releasever/updates/$basearch/
    http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://$host/centos/$releasever/extras/$basearch/
    http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

#epel
[epel]
name=Aliyun EPEL
baseurl=http://$host/centos/epel/$releasever/$basearch/
gpgcheck=0



本文出自 “3255641” 博客,请务必保留此出处http://xugen.blog.51cto.com/6117098/1900407

以上是关于使用脚本自建本地yum源的主要内容,如果未能解决你的问题,请参考以下文章

使用脚本自建本地yum源

rpm与yum的使用方法,通过yum自建仓库;通过at和crontab命令定期执行脚本

自建yum仓库,分别为网络源和本地源

自建yum仓库(网络源和本地源)

Centos下自建本地yum仓库

Linux之如何配置yum源网络源|自建仓库|hhtp分享源|本地源|超详细新手教程