run_full.sh 1.2 KB

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