IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : septembre 2017
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Détection de l'effacement par un logrotate sur linux d'un fichier log généré par log4js
    Bonjour

    sur Linux, nous avons d'une part une application nodejs qui utilise log4js pour remplir un fichier log
    et d'autre part la commande logrotate qui effectue la rotation des fichiers logs de toutes nos applications (dont cette application nodejs).
    Le problème est que l'application nodejs ne détecte pas que la taille du fichier log est remise à zéro (par logrotate) et ne peut donc plus écrire dans ce nouveau fichier (car l'inode a changé)

    pour des raisons de performances nous n'utilisons pas l'option copytruncate de logrotate qui permettrait de garder le même inode
    et nous ne voulons pas gérer une rotation de log spécifique par cette application nodejs

    y-a-t'il un moyen simple de détecter cette modification du fichier log ?

    merci d'avance

    Jean-Marie

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    juin 2018
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : juin 2018
    Messages : 105
    Points : 135
    Points
    135
    Par défaut
    Bonjour,

    Tu peux determiner la taille du fichier de cette maniere

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // method asynchrone egualement disponible
    const { statSync } = require('fs')
     
    const stats = statSync(__dirname)
     
    // cela fonctionne aussi bien pour les directory que pour les fichiers 
    console.log(`${__filename} - ${stats.size}`)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : septembre 2017
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Bonjour

    merci pour l'info
    c'est effectivement une solution envisageable
    mais, après investigation, vu que le logrotate envoie un signal SIGHUP à tous les process (en postrotate) je vais l'utiliser pour gérer ce fichier log

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script Perl sur Linux : Accéder à des fichiers Windows
    Par zets22 dans le forum Programmation et administration système
    Réponses: 5
    Dernier message: 24/03/2014, 08h32
  2. Récupérer les fichiers effacés par scandisk
    Par arfy dans le forum Windows XP
    Réponses: 2
    Dernier message: 27/11/2006, 19h28
  3. Problème de détection de carte tv par windows
    Par matbrun87 dans le forum Périphériques
    Réponses: 3
    Dernier message: 11/07/2006, 13h25
  4. Effacement d'un contrôle sur évènement
    Par Smint dans le forum Access
    Réponses: 5
    Dernier message: 22/06/2006, 20h42
  5. SOS comment recuperer base effacée par erreur ?
    Par fred666 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 04/08/2005, 09h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo