• Publicidad

Agrupar estadísticas de shell del fichero passwd

¿Eres administrador de sistemas? Este foro es para todos aquellos temas relacionados con el uso de Perl para administración de sistemas.

Agrupar estadísticas de shell del fichero passwd

Notapor alesevimor » 2012-02-01 10:48 @492

¡Hola de nuevo! mira estoy haciendo un script que agrupe las veces que el campo 7 del fichero passwd contiene bin/false, bin/sh y bin/bash. Esto es lo que tengo hecho. El problema es que nunca termina el bucle. Necesito que la salida sea:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
/bin/sh: 7
/bin/false: 19
/bin/bash: 2
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. open(F1, "passwd") or die "No existe el fichero";
  2. $contador=0;
  3. $contador1=0;
  4. $contador2=0;
  5. while ($linea=<F1>){
  6.         chomp $linea;
  7.         @line = split(/:/,$linea);
  8.         foreach $x(@line)
  9.         {
  10.         if ($x[7]=="sh")
  11.                 {
  12.                 $contador++;
  13.                 print "/bin/sh:",$contador;
  14.                 }
  15.         if ($x[7]=="bash")
  16.                 {
  17.                 $contador1++;
  18.                 print "/bin/bash:",$contador1;
  19.                 }
  20.         if ($x[7]=="false")
  21.                 {
  22.                 $contador2++;
  23.                 print "/bin/false:",$contador2;
  24.                 }
  25.         }
  26. }
  27. close F1;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Gracias de antemano.;D
alesevimor
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2012-01-31 15:55 @705

Publicidad

Re: Agrupar estadísticas de shell del fichero passwd

Notapor explorer » 2012-02-01 11:00 @500

Cambia la línea 7 por
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.         @x = split(/:/,$linea);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Elimina las líneas 8, 9 y 25 (las del bucle foreach(), ya que no te hacen falta).

Cambia todos los '==' de los if(), por 'eq', ya que se trata de una comparación alfanumérica, no numérica.

Debes sacar todos los print() que hay dentro de los if(), y ponerlos después del while(), cuando haya terminado el proceso de conteo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Agrupar estadísticas de shell del fichero passwd

Notapor alesevimor » 2012-02-01 11:17 @511

Ya lo he hecho pero me da 0 la salida:
alejandroubuntu@alejandroubuntu:~/Escritorio$ perl agrupar.pl passwd
/bin/sh:0
/bin/bash:0
/bin/false:0

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. open(F1, "passwd") or die "No existe el fichero";
  2. $contador=0;
  3. $contador1=0;
  4. $contador2=0;
  5. while ($linea=<F1>){
  6.         chomp $linea;
  7.         @x = split(/:/,$linea);
  8.         if ($x[7] eq "sh")
  9.                 {
  10.                 $contador++;
  11.                 }
  12.         if ($x[7] eq "bash")
  13.                 {
  14.                 $contador1++;
  15.  
  16.                 }
  17.         if ($x[7] eq "false")
  18.                 {
  19.                 $contador2++;
  20.                 }
  21. }
  22. print "/bin/sh:$contador\n";
  23. print "/bin/bash:$contador1\n";
  24. print "/bin/false:$contador2\n";
  25. close F1;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
alesevimor
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2012-01-31 15:55 @705

Re: Agrupar estadísticas de shell del fichero passwd

Notapor explorer » 2012-02-01 12:31 @563

Eso significa que el campo 7 no es ni "sh", ni "bash", ni "false".

Si lo que buscas es "/bin/bash", deberás poner exactamente eso.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Agrupar estadísticas de shell del fichero passwd

Notapor alesevimor » 2012-02-01 12:43 @571

¡Muchas gracias! =)
alesevimor
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2012-01-31 15:55 @705


Volver a Administración

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados