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

Solaris Discussion :

Ouvrir le fichier Lastlog


Sujet :

Solaris

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 50
    Points : 42
    Points
    42
    Par défaut Ouvrir le fichier Lastlog
    Bonjour

    Nous aurions besoin de voir ce qui ce passe aux niveaux des sessions sur un serveur solaris
    il nous semble que c'est le fichier lastlog qui possède les informations
    cette machine n'est pas sur notre site donc pas d'écran graphique sous la main
    Quelqu'un aurait il une technique pour rendre lisible ce fichier en mode commande ?

    Merci

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Bonjour

    cat /var/log/lastlog ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par Flodelarab Voir le message

    cat /var/log/lastlog ?
    Ça ne va pas aider, il y a un champs binaire dans lastlog.
    ɹǝsn *sıɹɐlos*

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par yoyo-tns Voir le message
    Nous aurions besoin de voir ce qui ce passe aux niveaux des sessions sur un serveur solaris
    il nous semble que c'est le fichier lastlog qui possède les informations
    Je regarderais plutôt du côté de wtmpx.

    cette machine n'est pas sur notre site donc pas d'écran graphique sous la main
    Une écran graphique ne permet pas spécialement de lire le contenu de lastlog qui est un fichier binaire utilisé en interne essentiellement par le pam de login.

    Quelqu'un aurait il une technique pour rendre lisible ce fichier en mode commande ?
    Le shell n'est pas spécialement adapté mais pour le fun, en voici une:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/bin/ksh
     
    cd /tmp
    rm foo*
    split -b 28 /var/adm/lastlog foo || echo failed
     
    printf "+------------+------------+--------------------------+\n"
    printf "| %-10s | %-10s | %-24s |\n" line host timestamp
    printf "+------------+------------+--------------------------+\n"
    for i in foo*; do
        timestamp=$(dd if=$i bs=4 count=1 2>/dev/null|od -D|nawk '{print $2}')
        line=$(dd if=$i bs=4 count=2 skip=1 2>/dev/null)
        host=$(dd if=$i bs=4 count=4 skip=3 2>/dev/null)
     
        if [ $timestamp -ne 0 ]; then
                printf "| %-10s | %-10s | %-24s | \n" "$line" "$host" "$(perl -le"print scalar localtime $timestamp")"
                printf "+------------+------------+--------------------------+\n"
        fi
    done
    ɹǝsn *sıɹɐlos*

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Ah ! C'est un fichier binaire. Alors:

    ou
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Ah ! C'est un fichier binaire. Alors:
    C'est mieux, sauf que le fichier est dans /var/adm.

    Non, "-h" n'est pas POSIX, On pourrait utiliser l'équivalent et portable:
    mais pas forcément facile de s'y retrouver dans le résultat.
    ɹǝsn *sıɹɐlos*

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 50
    Points : 42
    Points
    42
    Par défaut
    je confirme ce n'est pas compréhensible

    merci quand même pour votre aide

  8. #8
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par yoyo-tns Voir le message
    je confirme ce n'est pas compréhensible

    merci quand même pour votre aide
    Heu, tu as essayé le script que j'ai proposé dans le post #4 ??
    ɹǝsn *sıɹɐlos*

  9. #9
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    euh... lastlog ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # strace lastlog 2>&1 | grep /var/log/lastlog
    open("/var/log/lastlog", O_RDONLY)      = 3

  10. #10
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    Citation Envoyé par yoyo-tns Voir le message
    Quelqu'un aurait il une technique pour rendre lisible ce fichier en mode commande ?
    Ouais !
    En tapant lastlog au prompt, tout simplement. Voir man lastlog, c'est sympa.

    Bon, ben, grillé par BufferBob
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  11. #11
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    @BufferBob et @Jipété

    On n'est pas ici dans un forum Linux. Ni le fichier ni la commande lastlog ne sont spécifiés par POSIX et la commande lastlog n'existe pas sous Solaris.

    Sinon, je ne me serais pas amusé à la ré-implémenter en shell dans le post #4 que yoyo-tns lira peut-être s'il revient nous rendre visite ...
    ɹǝsn *sıɹɐlos*

  12. #12
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    my bad, j'ai pas fait attention effectivement, mais tu veux dire que sous Solaris y'a un fichier /var/log/lastlog généré et aucun outil pour l'utiliser ? ça manque cruellement de bon sens vu d'ici

  13. #13
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    @BufferBob et @Jipété

    On n'est pas ici dans un forum Linux. Ni le fichier ni la commande lastlog ne sont spécifiés par POSIX et la commande lastlog n'existe pas sous Solaris.


    Et une fois les larmes de rire séchées, lisons ça :
    Affichez ensuite le contenu actuel du fichier lastlog en tapant "$ lastlog".
    que j'ai trouvé sur un site... Solaris (première ligne du point 2) !

    Et moi, en voyant "$ lastlog", je me suis dit qu'il y avait une petite faute de frappe (il y en a tellement partout, maintenant ) et que le $ symbolisait le prompt (comme bien souvent) et qu'il suffisait donc de taper lastlog, et que si c'était prévu pour Solaris, rien ne m'empêchait de le tenter sous Linux et bingo !

    Bon, désolé si on a tout faux

    Citation Envoyé par jlliagre Voir le message
    Sinon, je ne me serais pas amusé à la ré-implémenter en shell dans le post #4 que yoyo-tns lira peut-être s'il revient nous rendre visite ...
    S'il revient...
    Il aurait pu mieux chercher (si moi je l'ai trouvée, n'importe qui peut la trouver)...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  14. #14
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    my bad, j'ai pas fait attention effectivement, mais tu veux dire que sous Solaris y'a un fichier /var/log/lastlog généré et aucun outil pour l'utiliser ? ça manque cruellement de bon sens vu d'ici
    Non, je l'ai déjà écrit une fois dans ce thread, il n'y a pas de fichier /var/log/lastlog mais un fichier /var/adm/lastlog. D'autre part il bien existe des outils Solaris qui l'utilisent dont au moins la commande finger mais il n'existe cependant pas de commande qui liste la totalité de son contenu comme le fait lastlog sous Linux.
    ɹǝsn *sıɹɐlos*

  15. #15
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Et une fois les larmes de rire séchées, lisons ça :
    que j'ai trouvé sur un site... Solaris (première ligne du point 2) !

    Et moi, en voyant "$ lastlog", je me suis dit qu'il y avait une petite faute de frappe (il y en a tellement partout, maintenant ) et que le $ symbolisait le prompt (comme bien souvent) et qu'il suffisait donc de taper lastlog, et que si c'était prévu pour Solaris, rien ne m'empêchait de le tenter sous Linux et bingo !

    Bon, désolé si on a tout faux
    "Un site Solaris" c'est vite dit, il fallait quand même la trouver cette page que l'auteur a "inventé" et dont le but principal n'est manifestement que d'afficher de la pub.

    Bon, voilà une version améliorée de mon script qui affiche le nom des utilisateurs et qui devrait aussi fonctionner sous linux en plus de Solaris.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #!/bin/ksh
    # ou /bin/bash si on veut
     
    PATH=$(getconf PATH)
     
    [ -f /var/adm/lastlog ] && { ll=/var/adm/lastlog ; ls=2; hs=4 ; } || { ll=/var/log/lastlog ; ls=8; hs=64 ; }
     
    set -e
    d=$(mktemp -d)
    trap "cd /; rm -rf $d" 0
    cd $d
    split -b $(((ls+hs+1)*4)) $ll foo || { echo failed ; exit 1 ; }
     
    uid=0
    printf "+------------+------------+------------+--------------------------+\n"
    printf "| %-10s | %-10s | %-10s | %-24s |\n" uid line host timestamp
    printf "+------------+------------+------------+--------------------------+\n"
    for i in foo*; do
        timestamp=$(dd if=$i bs=4 count=1 2>/dev/null|od -D|awk '{print $2}')
        line=$(dd if=$i bs=4 count=$ls skip=1 2>/dev/null)
        host=$(dd if=$i bs=4 count=$hs skip=$((ls+1)) 2>/dev/null)
     
        if [ $timestamp -ne 0 ]; then
                username=$(getent passwd $uid | sed 's/:.*$//')
                printf "| %-10s | %-10s | %-10s | %-24s | \n" "$username" "$line" "$host" "$(perl -le"print scalar localtime $timestamp")"
                printf "+------------+------------+------------+--------------------------+\n"
        fi
        uid=$((uid+1))
    done
    Et voici comment utiliser la commande finger pour récupérer les mêmes informations (et d'autres) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in $(getent passwd | sed 's/:.*$//'); do finger $i; done
    ɹǝsn *sıɹɐlos*

  16. #16
    Expert éminent sénior
    Avatar de Escapetiger
    Homme Profil pro
    Administrateur système Unix - Linux
    Inscrit en
    Juillet 2012
    Messages
    1 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur système Unix - Linux

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1 474
    Points : 11 042
    Points
    11 042
    Par défaut
    Citation Envoyé par yoyo-tns Voir le message
    Nous aurions besoin de voir ce qui ce passe aux niveaux des sessions sur un serveur solaris
    il nous semble que c'est le fichier lastlog qui possède les informations
    cette machine n'est pas sur notre site donc pas d'écran graphique sous la main
    Quelqu'un aurait il une technique pour rendre lisible ce fichier en mode commande ?
    Citation Envoyé par jlliagre Voir le message
    Je regarderais plutôt du côté de wtmpx.
    cf. ci-après
    Citation Envoyé par jlliagre Voir le message
    @BufferBob et @Jipété

    On n'est pas ici dans un forum Linux. Ni le fichier ni la commande lastlog ne sont spécifiés par POSIX et la commande lastlog n'existe pas sous Solaris.
    Citation Envoyé par BufferBob Voir le message
    my bad, j'ai pas fait attention effectivement, mais tu veux dire que sous Solaris y'a un fichier /var/log/lastlog généré et aucun outil pour l'utiliser ? ça manque cruellement de bon sens vu d'ici
    Citation Envoyé par jlliagre Voir le message
    @BufferBob et @Jipété
    Non, je l'ai déjà écrit une fois dans ce thread, il n'y a pas de fichier /var/log/lastlog mais un fichier /var/adm/lastlog. D'autre part il bien existe des outils Solaris qui l'utilisent dont au moins la commande finger mais il n'existe cependant pas de commande qui liste la totalité de son contenu comme le fait lastlog sous Linux.
    A la lecture complète du sujet, je pense que le titre initial du thread nous aiguille "de travers" (heuh yoyo-tns, tu n'y es pour rien ...)


    Entièrement d'accord avec jlliagre cependant j'ai le souvenir d'avoir utilisé la commande last par rapport au besoin initial. Je ne sais pas si la commande est POSIX.

    Un petit tour sur http://bhami.com/rosetta.html (Rosetta Stone for Unix):
    default syslog and messages

    /var/adm/messages
    /var/log/syslog
    softpanorama.org/Logs/solaris_logs.shtml
    puis ensuite (cf. Old News softpanorama.org/Logs/solaris_logs.shtml):
    Last Log

    The last command displays login/logout and system boot information in time sequence order. last reads the binary file /var/adm/wtmpx, which is written to every time a user logs in or out and when the system is rebooted. An example last command output is
    J'espère que ça réponds bien à la probématique soulevée.
    « Developpez.com est un groupe international de bénévoles dont la motivation est l'entraide au sens large » (incl. forums developpez.net)
    Club des professionnels en informatique

  17. #17
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    La commande last est bien implémentée par Solaris, et c'est bien à elle que je pensais en évoquant wtmpx.

    Cela dit, l'intérêt de lastlog par rapport à wtmpx est que le premier est un fichier qui n'est normalement jamais effacé et dont la taille est bornée par le nombre de comptes utilisés. Il permet de connaitre la date et l'origine du dernier login de chaque utilisateur, sans limite de temps.

    Au contraire, wtmpx est un fichier de log dont la taille n'est pas bornée et qui est donc sujet à rotation et effacement. Sur les systèmes où les logins sont très nombreux, il est donc possible de perdre la date de login d'un utilisateur au bout d'un certain temps.
    ɹǝsn *sıɹɐlos*

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/04/2004, 13h55
  2. ouvrir un fichier
    Par sofiane61 dans le forum MFC
    Réponses: 3
    Dernier message: 10/01/2004, 23h04
  3. [java][Oracle]Ouvrir un fichier(blob) avec le browser
    Par marsup54 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 11/09/2003, 13h35
  4. [VBA-E] ouvrir un fichier .xls sans executer les macro
    Par lae_t2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2003, 17h07
  5. [Kylix] Ouvrir un fichier en étant dans KYLIX
    Par Jackepsi dans le forum EDI
    Réponses: 2
    Dernier message: 05/11/2002, 15h59

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