ncc.zabbix_fbsd_templates
ncc.zabbix_fbsd_templates/src/aw.fbsd-mon-helper/lib/pkg.sh
.. v1.r202506.1 + Контроль запуска freebsd-update раз в 4 часа внутри скрипта, что позволяет запускать сам скрипт чаще. В инструкции по развёртыванию указано раз 15 минут + Контроль наличия запущенных процессов pkg, что позволит иметь меньше ошибок совместного использования БД пакетов системы
1.1 --- a/src/aw.fbsd-mon-helper/lib/pkg.sh Tue Feb 11 19:49:30 2025 +0300 1.2 +++ b/src/aw.fbsd-mon-helper/lib/pkg.sh Sun Jun 01 12:31:35 2025 +0300 1.3 @@ -152,16 +152,36 @@ 1.4 1.5 } 1.6 1.7 +pkg_check_pkg_binary () { 1.8 + # Проверяет, нет ли в системе других запущенных приложений pkg. 1.9 + # Необходимо, чтобы не мешать оперативным процессам обновления 1.10 + 1.11 + { 1.12 + ps -Ao comm | awk '$1 == "pkg" {print $1}' | wc -l | tr -d ' ' 1.13 + } 2>/dev/null 1.14 + 1.15 +} 1.16 + 1.17 pkg_do () { 1.18 + local _other_pkgs 1.19 + 1.20 log_start "pkg_do" 1.21 1.22 - pkg_init 1.23 + _other_pkgs="$(pkg_check_pkg_binary)" 1.24 + 1.25 + if [ "$_other_pkgs" -ne 0 ] ; then 1.26 + log "Pakages update check fail: other '${_other_pkgs}' binary working" 1.27 + ps -Ao comm,ppid,pid,time | awk '$1 == "pkg" {print $0}' | log 1.28 1.29 - pkg_check_up_status 1.30 - pkg audit -qF > "${v_pkg_update_status}.audit" 1.31 - mv -f "${v_pkg_update_status}.audit" "${v_pkg_update_status_res}.audit" 1.32 + else 1.33 + pkg_init 1.34 1.35 - pkg_make_detail 1.36 + pkg_check_up_status 1.37 + pkg audit -qF > "${v_pkg_update_status}.audit" 1.38 + mv -f "${v_pkg_update_status}.audit" "${v_pkg_update_status_res}.audit" 1.39 + 1.40 + pkg_make_detail 1.41 + fi 1.42 1.43 log_end 1.44 } 1.45 \ No newline at end of file