Jeedom 4.5 - un manque de logs après le passage du crondaily

Petite correction pour les noms de fichier log avec espace:

  public static function chunkLog($_path) {
    if (strpos($_path, '.htaccess') !== false) {
      return;
    }
    $maxLineLog = self::getConfig('maxLineLog');
    if ($maxLineLog < self::DEFAULT_MAX_LINE) {
      $maxLineLog = self::DEFAULT_MAX_LINE;
    }
    $sudo = system::getCmdSudo();
    $ftmp = jeedom::getTmpFolder() .'/log.tmp';
    $maxSizeLog = self::getConfig('maxSizeLog', '10');
    $path = escapeshellarg($_path);
    try {
      com_shell::execute("$sudo tail -c {$maxSizeLog}M $path | tail -n $maxLineLog > $ftmp && $sudo cat $ftmp > $path");
    } catch (\Exception $e) {
      message::add(__CLASS__, "Caught exception in " .__FUNCTION__ ."(): " .$e->getMessage());
    } finally {
      com_shell::execute("$sudo rm -f $ftmp");
    }
  }

Comme toi, j’avais mis à jour en 4.5.3 hier mais en oubliant la correction de chunkLog()
Résultat:
Une 20aine de lignes dans cron_execution

sh: 1: sudo: Argument list too long

et des fichiers supprimés mais encore utilisés

[2026-04-13 10:17:46][SCENARIO] LSOF:
[2026-04-13 10:17:46][SCENARIO] 588.44 MB	/usr/bin/node
[2026-04-13 10:17:46][SCENARIO] 187.76 MB	/var/www/html/log/mqtt2d
[2026-04-13 10:17:46][SCENARIO] 47.37 MB	/var/www/html/log/jMQTTd

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");
  }
}