ncc.zabbix_fbsd_templates

Yohn Y. 2024-10-13 Parent:74c0d4d119d4 Child:00d9437374a1

4:238da22c2de7 Browse Files

* Как оказалось, упор на origin в пакетах - плохая идея

src/aw.fbsd-mon-helper/lib/pkg.sh

     1.1 --- a/src/aw.fbsd-mon-helper/lib/pkg.sh	Sun Oct 13 20:39:05 2024 +0300
     1.2 +++ b/src/aw.fbsd-mon-helper/lib/pkg.sh	Sun Oct 13 21:11:51 2024 +0300
     1.3 @@ -18,7 +18,7 @@
     1.4  }
     1.5  
     1.6  pkg_make_detail () {
     1.7 -  local vl_pkg_origin
     1.8 +  local vl_pkg_fullname
     1.9    local vl_pkg_repo
    1.10    local vl_pkg_name
    1.11    local vl_pkg_ver
    1.12 @@ -30,16 +30,16 @@
    1.13          continue
    1.14        fi
    1.15  
    1.16 -      vl_pkg_origin="$(pkg which -o "$svc_file" | awk '$0 ~ "was installed by package" {print $6}')"
    1.17 -      if [ -z "$vl_pkg_origin" ] ; then
    1.18 +      vl_pkg_fullname="$(pkg which "$svc_file" | awk '$0 ~ "was installed by package" {print $6}')"
    1.19 +      if [ -z "$vl_pkg_fullname" ] ; then
    1.20          log "$svc_file have no matched pkg"
    1.21          continue
    1.22        fi
    1.23  
    1.24 -      vl_pkg_name="$(basename "$vl_pkg_origin")"
    1.25 -      vl_pkg_repo="$(pkg query '%R' "$vl_pkg_origin")"
    1.26 -      vl_pkg_ver="$(pkg query '%v' "$vl_pkg_origin")"
    1.27 -      vl_pkg_status="$(pkg version -r "$vl_pkg_repo" -qUO "$vl_pkg_origin" | awk '{print $2}')"
    1.28 +      vl_pkg_name="$(pkg query '%n' "$vl_pkg_fullname")"
    1.29 +      vl_pkg_repo="$(pkg query '%R' "$vl_pkg_fullname")"
    1.30 +      vl_pkg_ver="$(pkg query '%v' "$vl_pkg_fullname")"
    1.31 +      vl_pkg_status="$(pkg version -r "$vl_pkg_repo" -qUn "$vl_pkg_name" | awk '{print $2}')"
    1.32  
    1.33        case "$vl_pkg_status" in
    1.34          = )
    1.35 @@ -60,22 +60,22 @@
    1.36  
    1.37          "!" )
    1.38            vl_pkg_status="ERROR"
    1.39 -          log_err -s "${vl_pkg_origin}: pkg can not compare version of package"
    1.40 +          log_err -s "${vl_pkg_name}: pkg can not compare version of package"
    1.41            ;;
    1.42  
    1.43          * )
    1.44 -          log_err -s "${vl_pkg_origin}: unknown status ${vl_pkg_status}"
    1.45 +          log_err -s "${vl_pkg_name}: unknown status ${vl_pkg_status}"
    1.46            vl_pkg_status="ERROR"
    1.47            ;;
    1.48  
    1.49        esac
    1.50  
    1.51        vl_status_file="${v_pkg_detail_status}/${vl_pkg_name}"
    1.52 -      pkg query 'installed=%t\nmainteiner=%m\nsize=%sb\nlocked=%k' "$vl_pkg_origin" \
    1.53 +      pkg query 'installed=%t\nmainteiner=%m\nsize=%sb\nlocked=%k' "$vl_pkg_fullname" \
    1.54          > "${vl_status_file}"
    1.55  
    1.56        printf 'ver=%s\nrepo=%s\nstatus=%s\n' "${vl_pkg_ver}" "${vl_pkg_repo}" "${vl_pkg_status}" >> "$vl_status_file"
    1.57 -      pkg audit "${vl_pkg_name}-${vl_pkg_ver}" \
    1.58 +      pkg audit "$vl_pkg_fullname" \
    1.59          | awk '!($0 ~ "[0-9]* problem\\(s\\) in [0-9]* installed package\\(s\\) found") {print $0}' \
    1.60          > "${vl_status_file}.audit"
    1.61