在生产中内网的机器都是不能访问外网,所以需要搭建本地yum源。以中国科学科技大学的yum源为基准。http://mirrors.ustc.edu.cn/

有些模块会同步失败,可以wget下载至指定位置。

代码如下:

#!/bin/bash
#Script name:rsync_yumrepo.sh RsyncPerm='-avSH --delete-after --no-iconv --bwlimit=5000'
Centos_6_base='/app/YumRepo/Centos6/x86_64/Base/'
Centos_6_update='/app/YumRepo/Centos6/x86_64/update/'
Centos_6_epel='/app/YumRepo/Centos6/x86_64/Epel'
Centos_6_salt='/app/YumRepo/Centos6/x86_64/Salt'
Centos_6_docker='/app/YumRepo/Centos6/x86_64/Docker'
Centos_7_base='/app/YumRepo/Centos7/x86_64/Base/'
Centos_7_update='/app/YumRepo/Centos7/x86_64/update/'
Centos_7_epel='/app/YumRepo/Centos7/x86_64/Epel'
Centos_7_salt='/app/YumRepo/Centos7/x86_64/Salt'
Centos_7_docker='/app/YumRepo/Centos7/x86_64/Docker'
LogFile='/app/YumRepo/rsync_yum_log'
Date=`date +%Y-%m-%d` function CheckDir(){
if [ -d $ ];then
echo "$1 dir is exist,Please check it!"
else
echo "$1 dir is not exist,will create it!"
mkdir $ -p
fi
}
function CheckFile(){
if [ -e $ ];then
echo "$1 dir is exist,Please check it!"
else
echo "$1 dir is not exist,Please install on there!"
fi
}
function CheckStatus(){
if [ $? -eq ];then
echo -e "\033[1;32mRsync is success!\033[0m" >>$LogFile/$Date.log
else
echo -e "\033[1;31mRsync is fail!\033[0m" >>$LogFile/$Date.log
fi
}
CheckDir ${LogFile}
CheckDir ${Centos_6_base}
CheckDir ${Centos_6_update}
CheckDir ${Centos_6_epel}
CheckDir ${Centos_6_salt}
CheckDir ${Centos_6_docker}
CheckDir ${Centos_7_base}
CheckDir ${Centos_7_update}
CheckDir ${Centos_7_epel}
CheckDir ${Centos_7_salt}
CheckDir ${Centos_7_docker} ###rsync centos base
echo 'Now start to rsync centos 6 base!' >>$LogFile/$Date.log
rsync $RsyncPerm rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ $Centos_6_base >>$LogFile/$Date.log
CheckStatus
echo 'Now start to rsync centos 7 base!' >>$LogFile/$Date.log
rsync $RsyncPerm rsync://mirrors.ustc.edu.cn/centos/7/os/x86_64/ $Centos_7_base >>$LogFile/$Date.log
CheckStatus ###rsync epel
echo 'Now start to rsync centos 6 epel!' >>$LogFile/$Date.log
rsync $RsyncPerm rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ $Centos_6_epel >>$LogFile/$Date.log
CheckStatus
echo 'Now start to rsync centos 7 epel!' >>$LogFile/$Date.log
rsync $RsyncPerm rsync://mirrors.ustc.edu.cn/epel/7/x86_64/ $Centos_7_epel >>$LogFile/$Date.log
CheckStatus ###rsync salt
echo 'Now start to rsync centos 6 salt!' >>$LogFile/$Date.log
rsync $RsyncPerm rsync://mirrors.ustc.edu.cn/salt/yum/redhat/6/x86_64/ $Centos_6_salt >>$LogFile/$Date.log
CheckStatus
echo 'Now start to rsync centos 7 salt!' >>$LogFile/$Date.log
rsync $RsyncPerm rsync://mirrors.ustc.edu.cn/salt/yum/redhat/7/x86_64/ $Centos_7_salt >>$LogFile/$Date.log
CheckStatus ###rsync docker
#echo 'Now start to rsync centos 6 docker!' >>$LogFile/$Date.log
#rsync $RsyncPerm rsync://mirrors.ustc.edu.cn/docker-yum/repo/centos6/ $Centos_6_docker >>$LogFile/$Date.log
#CheckStatus
echo 'Now start to rsync centos 7 docker!' >>$LogFile/$Date.log
rsync $RsyncPerm rsync://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/x86_64/stable/ $Centos_7_docker >>$LogFile/$Date.log
CheckStatus ###rsync golang
rsync $RsyncPerm rsync://mirrors.ustc.edu.cn/golang/go1.9.linux-arm64.tar.gz /app/YumRepo/golang/go1.9.linux-arm64.tar.gz
CheckStatus ###rsync centos update
echo 'Now start to rsync centos 6 update!' >>$LogFile/$Date.log
rsync $RsyncPerm rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ $Centos_6_update >>$LogFile/$Date.log
CheckStatus
echo 'Now start to rsync centos 7 base!' >>$LogFile/$Date.log
rsync $RsyncPerm rsync://mirrors.ustc.edu.cn/centos/7/updates/x86_64/ $Centos_7_update >>$LogFile/$Date.log
CheckStatus

同步完成后,启用httpd服务

配置DocumentRoot "/app/YumRepo"

ServerName *:80

<Directory "/app/YumRepo/">

  Options Indexes FollowSymLinks

  AllowOverride None

  Order allow,deny

  Allow from all

</Dircetory>

检查语法错误httpd -t

重载配置service httpd reload

配置客户端

把/etc/yum.repo.d/目录下的所有.repo文件。mv改为*.bak

新建文件vim /etc/yum.repo.d/CentOS-Base.repo

[base]
name=Centos6 - base
baseurl=baseurl=http://HOSTADDR/Centos6/x86_64/Base
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [updates]
name=CentOS6 - updates
baseurl=http://HOSTADDR/Centos6/x86_64/update
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

重新生成缓存

  yum clean all

  yum makecache

搭建本地yum源并定时同步的更多相关文章

  1. 使用光盘搭建本地yum源

    刚装好的系统,想安装一些常用软件和一些包组的时候,就可以使用安装光盘搭建本地yum 第一步:挂载安装光盘 mount /dev/cdrom /mnt 第二步:编辑repo yum源文件 [root@l ...

  2. centos 搭建本地YUM源并使用apache共享YUM源

    搭建本地YUM源 1.挂载镜像 2.搭建本地YUM源 删除多余repo文件保留一个就行 本地YUM源就搭建好了 yum repolist 查看yum源 3.使用apache共享YUM源 YUM服务器配 ...

  3. 【转载】搭建本地yum源:以下是以centos7为例子

    搭建本地yum源:以下是以centos7为例子  1)首先需要安装 createrepo(需要一个可以使用源的机器,可以访问互联网)安装方法可以使用yum安装epel源 1 yum -y instal ...

  4. 搭建本地yum源出现:mount: 在 /dev/sr0 上找不到媒体

    2021-07-27 在练习环境搭建时,因为是离线环境,故先搭建本地yum源,但是出现了一个往常没有的问题:mount: 在 /dev/sr0 上找不到媒体,参考其他博主的文章得到解决方法. 排查问题 ...

  5. 使用光盘无网络搭建本地yum源仓库

    目录 一:使用光盘搭建本地yum源 1,按顺序搭建本地yum源 第一步 : 搭载安装光盘 第二步 : 编辑repo yum源文件 第三步 : 检查 yum makecache 注意事项: 一:使用光盘 ...

  6. 在linux上搭建本地yum源

    准备yum仓库的光盘镜像IOS文件: 设置光驱加载本地磁盘的yum仓库的光盘镜像文件: 在linux的命令行输入setup命令打开设置窗口,选择"System Service": ...

  7. 搭建本地yum源

    本地yum源其实非常容易搭建 首先进入/etc/yum.repos.d/ 将原来的yum源备份后移除,然后新建dvd.repo: 内容如下: [base] name=base baseurl=file ...

  8. 如何搭建本地yum源,阿里yum源以及自己的网络yum源?

    环境:CentOS7 一.本地源的yum源的搭建 (一)添加新的yum源配置文件iso.repo(名字可以自己命名,但是后缀必须是repo结尾) 注意:目录 /etc/yum.repos.d 下的 . ...

  9. CentOS 7搭建本地yum源

    问题 CentOS7.1安装rpm包时提示缺失包,有些包iso里面也没有,只能从外网yum,这种情况下,可以提前yum好所需的依赖包,做成一个本地yum源.将这些文件拷贝到没联网的机器就可以使用了. ...

随机推荐

  1. js总结:增加和减少文本框

    <head><script>var count = 0; function add(){ if(count<3) { count++; var x= document.c ...

  2. #Leetcode# 1009. Complement of Base 10 Integer

    https://leetcode.com/problems/complement-of-base-10-integer/ Every non-negative integer N has a bina ...

  3. Tomcat集成Memcached Session Manager方案

    http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/2.3.2/memcached-session-ma ...

  4. 什么是arp协议?

    转自:https://blog.csdn.net/tigerjibo/article/details/7351992 ARP (Address Resolution Protocol) 是个地址解析协 ...

  5. pojo类自动生成序列化ID

    自动生成序列化ID

  6. mybatis源码分析(一)------------入门

    在进行源码分析前,先写一个使用mybatis进行开发的demo,方便我们后面进行分析. 一 关于mybatis的demo  pom.xml文件 <project xmlns="http ...

  7. Vagrant系列(二)----Vagrant的配置文件Vagrantfile详解

    一.简介 在我们的工作目录下有一个Vagrantfile文件,里面包含有大量的配置信息,通过它可以定义虚拟机的各种配置,如网络.内存.主机名等,主要包括三个方面的配置,虚拟机的配置.SSH配置.Vag ...

  8. mybatis插入数据并返回自增Id

    上图mybatis的写法,在xxxMapper.xml中: 加入:useGeneratedKeys="true" keyProperty="applyId" k ...

  9. day 7-2 multiprocessing开启多进程

    一. multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多 ...

  10. 2017 Python最新面试题及答案16道题

    1.Python是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一.对象的引用计数机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都 ...