背景

因官方已经停更了Centos8.0,Linux社区已不再维护该操作系统版本目前阿里云镜像源发布通知,目前为了以后的发展需要需要将其进行备份到本地的私有Yum源中。

需求

  1. 需要创建一台centos8.0的容器,然后在里面下载相关的源的RPM包拷贝到本地。
  2. 定时更新官方源RPM包到Yum私有仓库

实施

1、创建docker 容器

docker run -it -d --restart=always --privileged --name=centos8.0_yum -v /yum.eeo-inc.com/centos8.0:/mnt/centos8.0_yum roboxes/centos8:latest /bin/bash

2、设置路由转发

目的是为了其docker容器内部进行上网

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

sysctl -p

systemctl restart network

systemctl restart docker.service

3、下载阿里云镜像源

阿里云镜像源官方网址:

https://developer.aliyun.com/mirror/?spm=a2c6h.25603864.0.0.3d974ccaDSuni8

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

4、将官方源同步到本地Yum源

同步公网镜像到本地私有仓库
用repoync 命令,Reposync用于将远程yum存储库同步到本地存储库

reposync -np  /data/centos/7/base/     
##这里同步的源文件就是上一步配置的yum源,/data/centos/7/base/ 为生成的本地yum仓库文件即rpm包所在路径
-n:只下载最新的包
-p:下载包的路径:默认为当前目录

5、设置定时同步任务

#!/bin/bash
echo 'Updating Aliyum Source'
DATETIME=`date +%F_%T`
exec > /var/log/aliyumrepo_$DATETIME.log
     reposync -np /data/package/centos/7/base
if [ $? -eq 0 ];then
      createrepo --update /data/centos/7/base/base
      createrepo --update /data/centos/7/base/extras
      createrepo --update /data/centos/7/base/updates
      createrepo --update /data/centos/7/base/epel
    echo "SUCESS: $DATETIME aliyum_yum update successful" >>/var/log/aliyumrepo_$DATETIME.log
  else
    echo "ERROR: $DATETIME aliyum_yum update failed" >> /var/log/aliyumrepo_$DATETIME.log
fi

添加定时任务:

0 3 * * 1  /bin/sh  /data/crond/yum_update.sh

每周一凌晨三点执行

作者:运维老许

出处:https://www.strives.cn/

联系方式:strive120620@163.com

微信公众号:Linux必修之路

声明1:本站部分资源收集自互联网,仅供个人学习交流,如不慎侵犯了您的权益,请联系我,我将尽快处理!

声明2:本文版权归作者,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利!

最后修改:2022 年 02 月 26 日 09 : 22 PM
请献出你的爱心,你的小小心意,是对博主最大的认可与支持!