如何将Satellite仓库ID、名称及RPM数量查询整合到循环中?
遍历Satellite仓库统计RPM包数量的脚本方案
可以用while read循环结合字段分隔符处理,把获取仓库列表和统计包数量的操作整合起来,完整脚本如下:
# 遍历所有仓库,统计每个仓库的RPM包数量 hammer --csv repository list | grep -v 'Id,Name' | while IFS=, read -r ID NAME; do # 获取当前仓库的包数量 SUM=$(hammer repository info --id "${ID}" | grep Packages | awk '{ print $2 }') # 输出统计结果 echo "仓库『${NAME}』的RPM包数量:${SUM}" done
关键部分说明
IFS=,:设置字段分隔符为逗号,确保能正确拆分仓库ID和名称read -r ID NAME:读取每一行的内容,分别赋值给ID和NAME变量- 循环内部复用你提供的
hammer repository info命令提取包数量,然后格式化输出结果
如果需要把结果保存到文件,直接重定向输出即可:
hammer --csv repository list | grep -v 'Id,Name' | while IFS=, read -r ID NAME; do SUM=$(hammer repository info --id "${ID}" | grep Packages | awk '{ print $2 }') echo "仓库『${NAME}』的RPM包数量:${SUM}" done > satellite_repo_package_counts.txt
内容的提问来源于stack exchange,提问作者user2664304
相关产品推荐
相关产品推荐

