亲爱的朋友们和大学们,
我想与大家分享以下问题,我相信这对这里的一些大学很重要
我想验证我的 Linux 机器中的所有存储库都正常
所以我们运行命令 -百胜重新处理如下
我们可以看到有关其中一个存储库的错误
yum repolist
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
file:///var/repoha/bility/h5th5th54/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /var/repoha/bility/h5th5th54/repodata/repomd.xml"
Trying other mirror.
file:///var/repoha/bility/h5th5th54/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /var/repoha/bility/h5th5th54/repodata/repomd.xml"
Trying other mirror.
Storage | 4.1 kB 00:00:00
Storage/group_gz | 4.9 kB 00:00:00
Storage/primary_db | 29 kB 00:00:00
local | 4.1 kB 00:00:00
local/group_gz | 136 kB 00:00:00
local/primary_db | 3.6 MB 00:00:00
repo id repo name status
bility Red Hat Enterprise Linux Server release 7.2 (Maipo) - bility 0
Storage Red Hat Enterprise Linux Server release 7.2 (Maipo) - Storage 37
local Red Hat Enterprise Linux Server release 7.2 (Maipo) - Local 4,620
repolist: 4,657
因此,为了验证 repo 是否正常,我们要检查 $? 的状态
[root@trump yum.repos.d]# echo $?
0
但我们得到 0
为什么我们得到“0”?尽管回购不正确?
我的问题是如何识别我的 Linux 机器中错误/错误的存储库?
答案1
在我的 Ansible 角色中,我使用check-update --refresh
- 作为命令的选项dnf
,但同样的想法应该适用于yum
.
yum
可能没有这个--refresh
选择。相反,运行yum clean expire-cache
然后yum check-update
.
如果更新可用,则退出状态 ( $?
)check-update
等于 0
成功。100
任何其他值都将指示失败。通常,尽管我猜并非总是如此,这将表明读取存储库时出现问题。就我的目的而言,这已经足够了。例如,如果我断开网络连接并立即运行该命令,它将返回退出状态1
.
更具体地说,我的 Ansible 角色正在安装一个新的存储库,并希望验证该存储库。例如,为了检查存储库是否bility
正常运行以及它的元数据是否可以读取,我使用类似 的命令dnf --disablerepo="*" --enablerepo=bility --refresh check-update
。