#!/bin/bash L=/opt/zabbix/l2collector LOG=/var/log/l2collector.log exec 9>/tmp/l2_full.lock flock -n 9 || { echo "[$(date -u +%FT%TZ)] skip full: already running" >> $LOG; exit 0; } # The page exposes one interval: full collection and its history snapshot. # This gate makes the configured value effective even though cron wakes every # five minutes; L2_FORCE_FULL=1 bypasses it for a manual run. if [ "${L2_FORCE_FULL:-0}" != "1" ] && ! /usr/bin/python3 "$L/l2_due.py" >> "$LOG" 2>&1; then exit 0 fi echo "[$(date -u +%FT%TZ)] FULL start" >> $LOG /usr/bin/python3 $L/stp_collect.py >> $LOG 2>&1 || echo "stp failed" >> $LOG /usr/bin/python3 $L/fdb_collect.py >> $LOG 2>&1 || echo "fdb failed" >> $LOG /usr/bin/python3 $L/fdb_analyze3.py >> $LOG 2>&1 || echo "analyze failed" >> $LOG /usr/bin/python3 $L/port_status.py >> $LOG 2>&1 || echo "port failed" >> $LOG /usr/bin/python3 $L/latency_collect.py >> $LOG 2>&1 || echo "latency failed" >> $LOG if L2_WRITE_HISTORY=1 flock /tmp/l2_snap.lock /usr/bin/python3 $L/l2_snapshot.py >> $LOG 2>&1; then date +%s > /tmp/l2_full_last else echo "snapshot failed" >> $LOG fi echo "[$(date -u +%FT%TZ)] FULL done" >> $LOG