ncc.zabbix_fbsd_templates
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