reposync 命令简单来说就是可以把指定外网源(repo id)的包同步到本地文件中
yum install -y yum-utils createrepo
#创建目录结构来存放同步下来的软件包
mkdir -p /var/www/html/kylin/V10/V10SP3/os/adv/lic/{base,updates}/x86_64/
#编写一个脚本来自动化 reposync 命令的执行
vim /root/kylinrepo.sh
#!/bin/bash
reposync -n --delete --download-metadata --norepopath --repoid=ks10-adv-os -p /var/www/html/kylin/V10/V10SP3/os/adv/lic/base/x86_64/
reposync -n --delete --download-metadata --norepopath --repoid=ks10-adv-updates -p /var/www/html/kylin/NS/V10/V10SP3/os/adv/lic/updates/x86_64/
#如果updates中带有-n参数,则重复旧版本的软件包不会下载,可以使用如下命令查看重复的软件包:
yum list --showduplicates package_name
#给脚本添加执行权限
chmod +x /root/kylinrepo.sh
参数说明:
-n: 只下载最新的包,相同的跳过
-m:下载comps.xml文件
--delete:删除已不在仓库中的本地软件包
--download-metadata:下载元信息,xml文件会实时下载,不用重新生成就可以使用。
--norepopath:不将存储仓库的路径放入生成的.repo文件中
--repoid:指定同步的存储库ID
-p :下载包的路径:默认为当前目录
1)安装并启动 httpd 服务以提供本地仓库的HTTP访问。
# 安装httpd
yum install -y httpd
# 启动httpd服务并设置为开机自启
systemctl enable --now httpd.service
2)配置 crontab 定时任务来自动执行 reposync 脚本。
# 安装crond服务(如果未安装)
yum -y install crond
# 启动crond服务并设置为开机自启
systemctl start crond
systemctl enable crond
# 编辑root用户的crontab
crontab -e -u root
在crontab文件中添加以下内容以每周日凌晨2点0分执行reposync脚本:
0 2 * * 0 /root/kylinrepo.sh
保存并退出。现在,每周日凌晨2点,reposync 脚本将自动执行,将远程仓库的软件包同步到本地服务器。
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
添加我为好友,拉您入交流群!
请使用微信扫一扫!