| 1234567891011121314151617181920212223 |
- #!/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
|