ncc.zabbix_fbsd_templates
2025-06-01
Parent:084000e4f9b6
ncc.zabbix_fbsd_templates/src/aw.fbsd-mon-helper/lib/fbsd_up.sh
.. v1.r202506.1 + Контроль запуска freebsd-update раз в 4 часа внутри скрипта, что позволяет запускать сам скрипт чаще. В инструкции по развёртыванию указано раз 15 минут + Контроль наличия запущенных процессов pkg, что позволит иметь меньше ошибок совместного использования БД пакетов системы
1.1 --- a/src/aw.fbsd-mon-helper/lib/fbsd_up.sh Tue Feb 11 19:49:30 2025 +0300 1.2 +++ b/src/aw.fbsd-mon-helper/lib/fbsd_up.sh Sun Jun 01 12:31:35 2025 +0300 1.3 @@ -5,6 +5,7 @@ 1.4 v_fbsd_up_out="$STATE_ROOT/fbsd_update" 1.5 v_fbsd_up_status="$STATE_ROOT/fbsd_update.status" 1.6 v_fbsd_up_current_ver="$STATE_ROOT/fbsd_update.versions" 1.7 +v_fbsd_up_action_flag="$STATE_ROOT/fbsd_update.action.flag" 1.8 1.9 1.10 fbsd_up_init () { 1.11 @@ -25,40 +26,59 @@ 1.12 > "${v_fbsd_up_current_ver}" 1.13 } 1.14 1.15 +fbsd_up_check_action_flag () { 1.16 + local res _act_flag 1.17 + 1.18 + res="$(( $(date '+%s') / 14400 ))" 1.19 + _act_flag="$(cat "$v_fbsd_up_action_flag")" 1.20 + 1.21 + if [ -z "$_act_flag" ] || [ "$res" -ne "$_act_flag" ] ; then 1.22 + echo "$res" | tee "$v_fbsd_up_action_flag" 1.23 + fi 1.24 +} 1.25 + 1.26 1.27 fbsd_up_do () { 1.28 + local _action_flag _ret 1.29 + 1.30 log_start "fbsd_up_do" 1.31 1.32 - fbsd_up_init 1.33 - fbsd_up_versions 1.34 - { 1.35 - $v_fbsd_up_binary updatesready 1.36 - local _ret="$?" 1.37 + _action_flag="$(fbsd_up_check_action_flag)" 1.38 + if [ -z "$_action_flag" ] ; then 1.39 + log "Not need to update: old action mark" 1.40 1.41 - case "$_ret" in 1.42 - 0 ) 1.43 - if [ "$(cat "$v_fbsd_up_status")" != "NEED UPDATE" ]; then 1.44 - mail -s "$(hostname -f): FREEBSD UPDATE NEEDED" "$ADMIN_MAIL" < "$v_fbsd_up_out" 1.45 - fi 1.46 + else 1.47 + log "New action flag '${_action_flag}' - updating" 1.48 + fbsd_up_init 1.49 + fbsd_up_versions 1.50 + { 1.51 + $v_fbsd_up_binary updatesready 1.52 + _ret="$?" 1.53 1.54 - fbsd_up_status "NEED UPDATE" 1.55 - ;; 1.56 + case "$_ret" in 1.57 + 0 ) 1.58 + if [ "$(cat "$v_fbsd_up_status")" != "NEED UPDATE" ]; then 1.59 + mail -s "$(hostname -f): FREEBSD UPDATE NEEDED" "$ADMIN_MAIL" < "$v_fbsd_up_out" 1.60 + fi 1.61 1.62 - 1 ) 1.63 - fbsd_up_status "RUN ERROR" 1.64 + fbsd_up_status "NEED UPDATE" 1.65 ;; 1.66 1.67 - 2 ) 1.68 - fbsd_up_status "OK" 1.69 - ;; 1.70 + 1 ) 1.71 + fbsd_up_status "RUN ERROR" 1.72 + ;; 1.73 + 1.74 + 2 ) 1.75 + fbsd_up_status "OK" 1.76 + ;; 1.77 1.78 - * ) 1.79 - fbsd_up_status "RUN ERROR" 1.80 - log_err "fbsd_up: updatesready return unknown code ${_ret}" 1.81 - ;; 1.82 - 1.83 + * ) 1.84 + fbsd_up_status "RUN ERROR" 1.85 + log_err "fbsd_up: updatesready return unknown code ${_ret}" 1.86 + ;; 1.87 esac 1.88 - } 2>&1 | log 1.89 + } 2>&1 | log 1.90 + fi 1.91 1.92 log_end 1.93 }