Routerconfigs de cacti no se ejecuta automáticamente

Me he encontrado con este problema y ha resultado ser un fallo en la gestión de la base de datos, routerconfigs establece una opción global que indica si ya se está ejecutando un proceso en de backups. Por algún motivo (posiblemente alguna de mis pruebas mientras desarrollaba las modificaciones para soportar ssh) esta variable se quedó establecida a 1 y esto impide la ejecución automática de este plugin. La variable es «plugin_routerconfigs_running» y se encuentra en la tabla «settings» de la base de datos de cacti, para comprobar su valor ejecutar desde un terminal:

mysql -u cacti -p cacti -e «select * from settings where name=’plugin_routerconfigs_running’;»
Enter password:
+—————————————+——-+
| name                                                      | value |
+—————————————+——-+
| plugin_routerconfigs_running   | 1         |
+—————————————+——-+

Si la columna value está establecida a 1 routerconfigs no se ejecutará así que para solucionarlo tan solo hay que ejecutar:

mysql -u cacti -p cacti -e «REPLACE INTO settings (name, value) VALUES (‘plugin_routerconfigs_running’, 0);»
Enter password:

Y para asegurar que todo ha ido bien

mysql -u cacti -p cacti -e «select * from settings where name=’plugin_routerconfigs_running’;»
Enter password:
+—————————————+——-+
| name                                                      | value |
+—————————————+——-+
| plugin_routerconfigs_running   | 0         |
+—————————————+——-+

Con esto routerconfigs se debería ejecutar a la perfección ;)…

O al menos eso pensaba… jejeje tras un día de ejecución volvió a fallar con el mismo resultado así que algo en el código no funciona como debe… entro en modo debugging debugging debugging uuuups que me me sa metio un bug 😛 bueno pues eso tras unas horas de estudio del código y debuggings varios hay un caso en el que un include hace un return antes de hacer el replace pertinente en esta tabla. El archivo en cuestión es el router-download.php, en la línea 66 encontramos un return solito dentro de un else tal que así

if (!empty($devices)) {

.

.

.

} else {
return;
}

para solucionar el problema el else debe quedar de esta otra forma

} else {
db_execute(«REPLACE INTO settings (name, value) VALUES (‘plugin_routerconfigs_running’, 0)»);
return;
}

Y ahora sí con esto va como la seda os lo juro que ya lleva meses rulandooooo

byte byte my nerds 😛

2 comentarios en “Routerconfigs de cacti no se ejecuta automáticamente

  1. Alexandre Vilarinho

    Ola,
    Estoy tiendo problemas con o plugin de captura automática de la configuración de los rotadores. Seguí los pasos de arriba, pero aun no funciono. Tengo que hacer alguna otra cosa? Como por ejemplo, recompilar el código de lo plugin?
    Desde ya agradezco.
    Saludos

    Responder
    1. abdulet Autor

      Hola Alexandre,

      Si la versión de Cacte es reciente este bug ya se solucionó ya que lo incluí en su bugtracker y lo aceptaron. Si la versión es la misma con seguir estos pasos debería funcionar ya que al ser PHP el código no hay que compilarlo.

      Saludos

      Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.