Linux
如何在我的 linux 機器中辨識錯誤/壞的 repo?
親愛的朋友和大學,
我想和你分享以下問題,我相信這對這裡的一些大學很重要
我想驗證我的 linux 機器中的所有 repo 是否正常
所以我們執行命令 - yum repolist如下
我們可以看到關於其中一個 repo 的錯誤
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 機器中辨識錯誤/壞的 repo?
在我的 Ansible 角色中,我使用
check-update --refresh
- 作為dnf
命令的一個選項,但同樣的想法應該適用於yum
.
yum
可能沒有--refresh
選項。相反,執行yum clean expire-cache
然後yum check-update
.如果更新可用,則退出狀態 (
$?
)check-update
等於0
成功。100
任何其他值都表示失敗。通常,雖然我猜並非總是如此,但這將表明閱讀 repo 時出現問題。就我的目的而言,這就足夠了。例如,如果我斷開網路並立即執行該命令,它將返回退出狀態1
.更具體地說,我的 Ansible 角色是安裝一個新的 repo,並希望驗證一個 repo。例如,要檢查 repo
bility
是否正常執行並且可以讀取它的元數據,我使用類似dnf --disablerepo="*" --enablerepo=bility --refresh check-update
.