背景
因官方已经停更了Centos8.0,Linux社区已不再维护该操作系统版本目前阿里云镜像源发布通知,目前为了以后的发展需要需要将其进行备份到本地的私有Yum源中。
需求
- 需要创建一台centos8.0的容器,然后在里面下载相关的源的RPM包拷贝到本地。
- 定时更新官方源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
每周一凌晨三点执行
作者:运维老许
联系方式:strive120620@163.com
微信公众号:Linux必修之路
声明1:本站部分资源收集自互联网,仅供个人学习交流,如不慎侵犯了您的权益,请联系我,我将尽快处理!
声明2:本文版权归作者,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利!
情感表达稍显含蓄,可适当强化渲染。