ncc.zabbix_fbsd_templates
18:4c0387be9c91
Go to Latest
ncc.zabbix_fbsd_templates/src/aw.fbsd-mon-helper/lib/fbsd_up.sh
.. v1.r202506.1
+ Контроль запуска freebsd-update раз в 4 часа внутри скрипта, что позволяет
запускать сам скрипт чаще. В инструкции по развёртыванию указано раз 15 минут
+ Контроль наличия запущенных процессов pkg, что позволит иметь меньше ошибок
совместного использования БД пакетов системы
2 # Работа с обновлениями FreeBSD
4 v_fbsd_up_binary="/usr/sbin/freebsd-update --not-running-from-cron"
5 v_fbsd_up_out="$STATE_ROOT/fbsd_update"
6 v_fbsd_up_status="$STATE_ROOT/fbsd_update.status"
7 v_fbsd_up_current_ver="$STATE_ROOT/fbsd_update.versions"
8 v_fbsd_up_action_flag="$STATE_ROOT/fbsd_update.action.flag"
12 $v_fbsd_up_binary fetch
>
"$v_fbsd_up_out"
17 echo "$1" >
"$v_fbsd_up_status"
22 printf "userland=%s\nkernel=%s\nkcurrent=%s\n" \
23 "$(/bin/freebsd-version
-u
)" \
24 "$(/bin/freebsd-version
-k
)" \
25 "$(/bin/freebsd-version
-r
)" \
26 >
"${v_fbsd_up_current_ver}"
29 fbsd_up_check_action_flag
() {
32 res="$(( $(date
'+%s') / 14400 ))"
33 _act_flag="$(cat
"$v_fbsd_up_action_flag")"
35 if [ -z
"$_act_flag" ] || [ "$res" -ne
"$_act_flag" ] ; then
36 echo "$res" | tee
"$v_fbsd_up_action_flag"
42 local _action_flag
_ret
44 log_start
"fbsd_up_do"
46 _action_flag="$(fbsd_up_check_action_flag
)"
47 if [ -z
"$_action_flag" ] ; then
48 log
"Not need to update: old action mark"
51 log
"New action flag '${_action_flag}' - updating"
55 $v_fbsd_up_binary updatesready
60 if [ "$(cat
"$v_fbsd_up_status")" !
= "NEED UPDATE" ]; then
61 mail
-s
"$(hostname
-f
): FREEBSD UPDATE NEEDED" "$ADMIN_MAIL" <
"$v_fbsd_up_out"
64 fbsd_up_status
"NEED UPDATE"
68 fbsd_up_status
"RUN ERROR"
76 fbsd_up_status
"RUN ERROR"
77 log_err
"fbsd_up: updatesready return unknown code ${_ret}"