Suite à ce poste, j’avais réglé le souci de mon log qui était tromqué mais depuis la maj 4.5.3 le problème semble revenu, je me retrouve avec mon log qui commence à 1h15 du jour en cours alors que j’ai habituellement +48H de log
Oui, elle devait corriger mais aucun PR n’a été fait.
Entre temps le « tronquage » des logs a été aussi modifié dans la 4.5.3 pour être fait chaque heure s’ils dépassent une certaine taille. Il faut que la fonction de ce post soit réadaptée ( ou pas ? ).
Ce n’est malheuresement pas un sujet très prioritaire puisque ça n’a visiblement pas l’air de toucher grand monde d’après Loïc, j’ai pas encore compris pourquoi
perso ca m’a plus d’une fois mis mon install a plat …
la rotation des logs ne se fait pas correctement
le fichier qui est censé être supprimé ne l est pas, le plugin continue de voir et d ecrire dans « l ancien » fichier de log (qui n est plus visibleme sur l interface jeedom) mais qui grossit, grossit, grossit… jusqu a atteindre la capacité max du disque et tout faire planter …
Il faudra au moins relancer les daemons pour que les fichiers marqués deleted se supprime et que le daemon retrouve un log visible.
Comme il n’arrive pas à tronquer le fichier, il est passé par la suppression du fichier.
Dans ce cas le fichier n’est plus visible, et le daemon continue à le remplir. Il ne sera jamais tronqué.
Vérifiez aussi que l’ouverture du fichier de log est faite en O_APPEND ( Ecriture toujours à la fin du fichier quelque soit l’endroit de l’écriture précédente ).
Le lancement du daemon avec daemon >> logdaemond fait l’ouverture correctement. Le fichier peut être tronqué. Le daemon écrira toujours à la fin du fichier.
Je viens de tester le tronquage sur le log de jMQTT. En debug, il y a beaucoup de trafic. Le log est passé de +65000 à 2000 lignes et le daemon écrit encore dans le fichier.
Je ne fais plus de PR. Je ne maitrise pas la façon de programmer Jeedom.
Exemple dans ce cas: Pas de variable $sudo mais des appels multiples de system::getCmdSudo() Expérience vécue sur un PR de plugin-weather
Le code ci-dessus est une proposition que Jeedom adaptera au besoin.
Pour /usr/bin/node c’est normal. J’avais fait aussi un apt upgrade qui a MAJ node. Ca sera résolu au prochain reboot ou à l’arrêt des daemons node.
Pour les 2 logs de daemon, vu leur taille, la fin du tronquage des fichiers ne doit pas dater d’hier. Le pb semble subsister. J’ai mis en surveillance la création des lsof dans le scénario qui surveille les logs.
Bloc code surveillance lsof:
// liste des fichiers ouverts et supprimés
$cmd = 'sudo lsof -nP 2>/dev/null | grep deleted | awk \'{size[$(NF-1)]+=$7} END {for (file in size) printf "%.2f MB\t%s\n", size[file]/(1024*1024), file}\' | sort -rh';
exec($cmd, $output, $retval);
if(count($output)) {
$scenario->setLog("LSOF:");
foreach($output as $l) {
$size = floatval($l);
if ($size > 10)
$scenario->setLog("$l");
}
}