Question : comment lire le dossier de /var/adm/wtmp du HP-UX

Bonjour, le
j'ai un manuscrit de Perl qui des travaux très bien sur le Solaris 10 mais lui exposition de doesnot tout rendement quand je la cours sur des serveurs de HP-UX 11… Je dois savoir déballe la commande d'obtenir des valeurs à partir du dossier de wtmp de HP ?

class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
># " de l'id= " codeSnippet651843 de
> », « $FILE » ou mourir « ne pourrait pas écrire au dossier : $ !  » ;
ouvrir WTMP, « /var/adm/wtmp » ou mourir « incapable d'ouvrir le wtmp : $ ! \ n » ;
mon ($record, %prev) ;
   printf (DEHORS « %7s %8s %-5s %-4s %-5s %s %s %s %s %s %s %s %-s \ n », « CENTRE SERVEUR », « DATE », « OS », « UTILISATEUR », « PORT », « SEMAINE », « MOIS », « JOUR », « DÉBUT », » - « , « EXTRÉMITÉ », 'DURATIO
IP de N', « ") ;
FORCE :
tandis que (lu (WTMP, $record, $recordsize)) {
    # 0 $ut_user
    # 1 $ut_id
    # 2 $ut_line
    # 3 $ut_pid
    # 4 $ut_type
    # 5 $ut_e_termination
    # 6 $ut_e_exit
    # 7 $tv_sec
    # 8 $tv_usec
    # 9 $ut_session
    # 10 $ut_syslen
    # 11 $ut_host
    mes @vals = déballent ($template, $record) ;
    # mettre tous les conditionals sur cette ligne pour faciliter en les changeant
    prochaine FORCE à moins que (>= time-86400 de $vals [0] et de $vals [7] et =~ /bsp/ de $vals [0]) ;
# après FORCE à moins que ($vals [0] et =~ /bsp/ de $vals [0]) ;
    si ($vals [11]) {# ouverture
        si (le =~ m {^ftp} de $vals [2] et existe $prev {$vals [0]} {$vals [2]}) {
            # c'est ftp et existe déjà ainsi c'est vraiment une déconnexion
            mon @stm = (localtime $prev {$vals [0]} {$vals [2]} [7]) [6.4.3.2.1] ;
# $stm [0] = (qw (Sun lundi Tue Wed le Fri Sat))[$stm [0]] ;
# $stm [1] = (qw (janv. fév. mars avr. peut juin juillet août sept oct. nov. décembre))[$stm [1]] ;
            mon @etm = (localtime $vals [7]) [2.1] ;
            mon $dmin = international (($vals [7] - $prev {$vals [0]} {$vals [2]} [7]) /60) ; # obtenir la minute
            mon $dhr = international ($dmin/60) ; # obtenir les heures
            $dmin - = $dhr*60 ;

         printf (DEHORS « %7s, %8s, %5s, %-4s, %-5s, %s, %s, %02d, %02d : %02d, -, %02d : %02d, (%02d : %02d), %-s \ n », $HOST, $DATE, $OS, $vals [0], « ftp », @stm, @etm, $dhr, $dmin,
 $prev {$vals [0]} {$vals [2]} [11]) ;
            suppression $prev {$vals [0]} {$vals [2]} ;
        } autrement {
            # de contrôle d'erreurs
            si (existe $prev {$vals [0]} {$vals [2]}) {
            # avertir que « il y a déjà une entrée d'ouverture pour $vals [0] sur $vals [2] - recouvrant » ;
            }
            $prev {$vals [0]} {$vals [2]} = [@vals] ;
        }
    } autrement {# déconnexion/complètement proc arrogants
        # de contrôle d'erreurs
        si (pas existe $prev {$vals [0]} {$vals [2]}) {
# avertir que « ne pourrait pas trouver une entrée d'ouverture pour $vals [0] sur $vals [2] - sautant » ;
            prochaine FORCE ;
        }
        mon @stm = (localtime $prev {$vals [0]} {$vals [2]} [7]) [6.4.3.2.1] ;
# $stm [0] = (qw (Sun lundi Tue Wed Thu Fri Sat))[$stm [0]] ;
# $stm [1] = (qw (janv. fév. mars avr. peut juin juillet août sept oct. nov. décembre))[$stm [1]] ;
        mon @etm = (localtime $vals [7]) [2.1] ;
        mon $dmin = international (($vals [7] - $prev {$vals [0]} {$vals [2]} [7]) /60) ; # obtenir la minute
        mon $dhr = international ($dmin/60) ; # obtenir les heures
        $dmin - = $dhr*60 ;
       printf (DEHORS « %7s, %8s, %5s, %-4s, %-5s, %s, %s, %02d, %02d : %02d, -, %02d : %02d, (%02d : %02d), %-s \ n », $HOST, $DATE, $OS, $vals [0], $vals [2], @stm, @etm, $dhr, $dmin,
$prev {$vals [0]} {$vals [2]} [11]) ;
        suppression $prev {$vals [0]} {$vals [2]} ;
    }
}
WTMP étroit ;
class= de

Réponse : comment lire le dossier de /var/adm/wtmp du HP-UX

Ah.  Je vois le problème.  Changer la ligne 8 pour être :

mon $script = basename $0 ;
mon $TMPFILE = « . $script.last » ;

et ajouter ceci après la ligne 2 :

employer les avertissements ;  # pas strictement nécessaire mais toujours une bonne idée
dossier d'utilisation : : Basename ;
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us