sh Reposync - 比mrepo更好的工具。使用此选项可以同步RHEL系统订阅的所有通道,并将它们转换为本地公开的y

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh Reposync - 比mrepo更好的工具。使用此选项可以同步RHEL系统订阅的所有通道,并将它们转换为本地公开的y相关的知识,希望对你有一定的参考价值。

#!/bin/bash
# This tool can be used to sync down Red Hat based packages from RHN using only Red Hat shipped tools
# Brian "Red Beard" Harrington <brian@dead-city.org>
# To satisfy the pre-reqs for this script install the following two rpms:
# yum-utils
# createrepo

download_dir="/var/www/html/RHN"

/usr/bin/reposync --gpgcheck -m --download-metadata -l -p ${download_dir}/ >> /var/log/reposync.log 2>&1

for dirname in `find ${download_dir} -maxdepth 1 -mindepth 1 -type d`; do
  echo $dirname: | tee -a /var/log/reposync.log
	if [ -f "${dirname}/comps.xml" ]; then
		cp ${dirname}/comps.xml ${dirname}/Packages/ >> /var/log/reposync.log 2>&1
		createrepo  --update -p --workers 2 -g ${dirname}/Packages/comps.xml ${dirname} >> /var/log/reposync.log 2>&1
	else
		createrepo  --update -p --workers 2 ${dirname}/ >> /var/log/reposync.log 2>&1
	fi	
	set -o pipefail 
	updateinfo=$(ls -1t  ${dirname}/*-updateinfo.xml.gz 2>/dev/null | head -1 ) 
	if [[ -f $updateinfo  &&  $? -eq 0 ]]; then
		echo "Updating errata information for ${dirname}" >> /var/log/reposync.log 2>&1
		\cp $updateinfo ${dirname}/updateinfo.xml.gz  >> /var/log/reposync.log 2>&1
		gunzip -df ${dirname}/updateinfo.xml.gz  >> /var/log/reposync.log 2>&1
		modifyrepo ${dirname}/updateinfo.xml ${dirname}/repodata/  >> /var/log/reposync.log 2>&1
	else
		echo "No errata information to be processed for ${dirname}" >> /var/log/reposync.log 2>&1
	fi
done

以上是关于sh Reposync - 比mrepo更好的工具。使用此选项可以同步RHEL系统订阅的所有通道,并将它们转换为本地公开的y的主要内容,如果未能解决你的问题,请参考以下文章

reposync

关于rhel/centos-8.x中reposync的命令选项参数说明

多人开发时Git下冲突的产生和解决

shell 使用reposync同步仓库

使用reposync工具配置yum本地源

repo搭建