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 😛