#!/bin/bash # Zabbix DB Maintenance Script # Objetivo: Manter tabelas de configuração e eventos rápidas # Requer: sudo e acesso ao usuário postgres LOG_FILE="/var/log/zabbix/db_maintenance.log" DB_NAME="zabbix" echo "[$(date)] Iniciando manutenção do banco Zabbix..." >> $LOG_FILE # Lista de tabelas críticas para o frontend e cache TABLES=( "items" "triggers" "functions" "events" "problem" "sessions" "auditlog" "trends" "trends_uint" ) for TABLE in "${TABLES[@]}"; do echo " -> Otimizando tabela: $TABLE" >> $LOG_FILE # Usando vacuumdb para simplicidade (parte do client postgresql) # -z = analyze, -v = verbose, -t = table if sudo -u postgres vacuumdb -d $DB_NAME -z -t $TABLE >> $LOG_FILE 2>&1; then echo " OK" >> $LOG_FILE else echo " ERRO" >> $LOG_FILE fi done echo "[$(date)] Manutenção concluída." >> $LOG_FILE echo "---------------------------------------------------" >> $LOG_FILE