ncc.zabbix_fbsd_templates

Yohn Y. 2025-01-24 Parent:6f7c75523337 Child:977edf00b200

15:4b52905c8a66 Browse Files

.. v1.r202501.9 + Атомарно изменяем файлы с информацияе по сосотоянию пакетов + Поддержка приколов pkgng 2.0

src/aw.fbsd-mon-helper/bin/lounch.sh src/aw.fbsd-mon-helper/lib/pkg.sh src/aw.fbsd-mon-helper/version

     1.1 --- a/src/aw.fbsd-mon-helper/bin/lounch.sh	Fri Dec 20 00:53:27 2024 +0300
     1.2 +++ b/src/aw.fbsd-mon-helper/bin/lounch.sh	Fri Jan 24 22:13:20 2025 +0300
     1.3 @@ -43,8 +43,12 @@
     1.4  . "$APP_ROOT/lib/fbsd_up.sh"
     1.5  . "$APP_ROOT/lib/pkg.sh"
     1.6  
     1.7 -log "Start process, but sleep some..."
     1.8 -sleep_some
     1.9 +if [ "$1" != "fast" ] ; then
    1.10 +  log "Start process, but sleep some..."
    1.11 +  sleep_some
    1.12 +else
    1.13 +  log "Skip wait, fast mode"
    1.14 +fi
    1.15  
    1.16  {
    1.17    fbsd_up_do
     2.1 --- a/src/aw.fbsd-mon-helper/lib/pkg.sh	Fri Dec 20 00:53:27 2024 +0300
     2.2 +++ b/src/aw.fbsd-mon-helper/lib/pkg.sh	Fri Jan 24 22:13:20 2025 +0300
     2.3 @@ -2,17 +2,27 @@
     2.4  # Различная статистика по пакетам
     2.5  
     2.6  v_pkg_detail_status="$STATE_ROOT/pkg_detail"
     2.7 +v_pkg_detail_status_tmp="${TMP_ROOT}/pkg_detail"
     2.8 +
     2.9  v_pkg_update_status="$STATE_ROOT/pkg_update"
    2.10  v_pkg_detail_status_list="${TMP_ROOT}/pkg_detail_status_list"
    2.11  
    2.12  pkg_init () {
    2.13    if ! [ -d "$v_pkg_detail_status" ]; then
    2.14      mkdir -p "$v_pkg_detail_status"
    2.15 +  
    2.16    else
    2.17      # Удаляем старые директории, в которые давно не не пишутся данные по пакетам
    2.18      log "Clean old detail pakages"
    2.19      find "$v_pkg_detail_status" -type f -ctime +1 -print0 | xargs -0n 1 rm -frv 2>&1 | log
    2.20 +  
    2.21    fi
    2.22 +
    2.23 +  if ! [ -d "${v_pkg_detail_status_tmp}" ] ; then
    2.24 +    mkdir -p "${v_pkg_detail_status_tmp}"
    2.25 +  
    2.26 +  fi
    2.27 +
    2.28    log "Update pakages"
    2.29    pkg update 2>&1 | log
    2.30    # Обновление базы аудита происходит на получении общих данных по пакетам
    2.31 @@ -58,6 +68,7 @@
    2.32    local vl_pkg_name
    2.33    local vl_pkg_ver
    2.34    local vl_status_file
    2.35 +  local vl_status_tmp_file
    2.36    local vl_pkg_status
    2.37  
    2.38    pkg_get_detail_pkg_list
    2.39 @@ -68,7 +79,7 @@
    2.40      vl_pkg_name="$(pkg query '%n' "$vl_pkg_fullname")"
    2.41      vl_pkg_repo="$(pkg query '%R' "$vl_pkg_fullname")"
    2.42      vl_pkg_ver="$(pkg query '%v' "$vl_pkg_fullname")"
    2.43 -    vl_pkg_status="$(pkg version -r "$vl_pkg_repo" -qUn "$vl_pkg_name" | awk '{print $2}')"
    2.44 +    vl_pkg_status="$(pkg version -r "$vl_pkg_repo" -qUn "$vl_pkg_name" | tail -n 1 | awk '{print $2}')"
    2.45  
    2.46      case "$vl_pkg_status" in
    2.47        = )
    2.48 @@ -100,13 +111,21 @@
    2.49      esac
    2.50  
    2.51      vl_status_file="${v_pkg_detail_status}/${vl_pkg_name}"
    2.52 +    vl_status_tmp_file="${v_pkg_detail_status_tmp}/${vl_pkg_name}"
    2.53 +
    2.54      pkg query 'installed=%t\nmainteiner=%m\nsize=%sb\nlocked=%k' "$vl_pkg_fullname" \
    2.55 -      > "${vl_status_file}"
    2.56 +      > "${vl_status_tmp_file}"
    2.57  
    2.58 -    printf 'ver=%s\nrepo=%s\nstatus=%s\n' "${vl_pkg_ver}" "${vl_pkg_repo}" "${vl_pkg_status}" >> "$vl_status_file"
    2.59 -    pkg audit "$vl_pkg_fullname" \
    2.60 -      | awk '!($0 ~ "[0-9]* problem\\(s\\) in [0-9]* installed package\\(s\\) found") {print $0}' \
    2.61 -      > "${vl_status_file}.audit"
    2.62 +    printf 'ver=%s\nrepo=%s\nstatus=%s\n' "${vl_pkg_ver}" "${vl_pkg_repo}" "${vl_pkg_status}" >> "$vl_status_tmp_file"
    2.63 +    
    2.64 +    (
    2.65 +      if [ -n "$(pkg audit -q "$vl_pkg_fullname")" ];  then
    2.66 +        pkg audit "$vl_pkg_fullname"
    2.67 +      fi
    2.68 +    ) > "${vl_status_tmp_file}.audit"
    2.69 +
    2.70 +    mv -f "${vl_status_tmp_file}" "${vl_status_file}"
    2.71 +    mv -f "${vl_status_tmp_file}.audit" "${vl_status_file}.audit"
    2.72  
    2.73    done
    2.74  }
     3.1 --- a/src/aw.fbsd-mon-helper/version	Fri Dec 20 00:53:27 2024 +0300
     3.2 +++ b/src/aw.fbsd-mon-helper/version	Fri Jan 24 22:13:20 2025 +0300
     3.3 @@ -1,1 +1,1 @@
     3.4 -v0.r202410.4
     3.5 \ No newline at end of file
     3.6 +v1.r202501.9
     3.7 \ No newline at end of file