• [^] # Re: Concours d'uptime

    Posté par . En réponse au journal Concours d'uptime. Évalué à 1.

    Il vaudrait mieux faire un peu plus que juste un cron avec uptime >> ~/stats.txt parce qu'analyser un truc du style :
    0.82d
    1.82d
    2.82d
    ...
    qu'est-ce qu'on peut en conclure si ce n'est déduire de la suite remarquable que le cron s'exécute une fois par jour... Espérons qu'on ne rebootera pas vers la même heure que la fois précédente...

    AMHA, pour avoir des statistiques un poil précises, le mieux serait de:
    - incrémenter un compteur au boot
    - "croner" chaque minute l'uptime et remplacer la dernière valeur si les indices sont égaux dans ~/stats.txt avec un script du genre

    #! bla-bla-bash
    typeset -i _idx=$(cat <mon_fichier_index_maj_au_boot>)
    typeset -i _cur=0
    tail -n1 ~/stats.txt | read _cur _upt
    if (( _idx == _cur ))
    then
    # cas le + probable : meme boot, maj du fichier de stats
    /usr/bin/ed -s ~/stats.txt <<-ENDOFSED 1>/dev/null
    H
    $ /$_upt/s//$(uptime)
    w
    q
    ENDOFSED

    # on append systematiquement en cas d'erreur
    (( $? != 0 )) && echo "$_idx $(uptime)" >> ~/.stats.txt

    else
    # cas rare : suite a un reboot
    echo "$_idx $(uptime)" >> ~/.stats.txt

    fi

    NB:
    1. -ENDOFSED autorise l'increment des instructions du ed avec des tabulations uniquement. Sinon, aucun increment possible
    2. il faut juste trier les entrées d'indice identique potentiellement présent

    Il y a sans doute plus élégant...
    J'veux bien l'equivalent en perl passque le shell ça ...>< ...