• Publicidad

Comprobación de lectura de archivo

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Comprobación de lectura de archivo

Notapor situ » 2012-02-19 19:38 @860

Quiero comprobar la lectura del archivo "/etc/inetd.conf", para luego verificar su configuración, pero según el script no existe y esto es erróneo.

Lo verifiqué como usuario "root" y me dice exactamente lo mismo.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use Term::ANSIColor qw(:constants);
  3. my $FICHERO4 = '/etc/inetd.conf';
  4. my $estatus4 = stat($FICHERO4);
  5.  
  6.     if ((! defined $estatus4) || (-r $FICHERO4)) {
  7.         print BOLD, RED, 'No existe', RESET, " El archivo $FICHERO4 no existe en el sistema o no puede ser accedido\n";
  8.  
  9.     }
  10. foreach $varb2 (@sdefault){
  11. $comando2 = ( qx(grep '^$varb2' $FICHERO4 ));
  12. chomp $comando2;
  13. if ( "$comando2" ne "$varb2" ){
  14.  }
  15. else
  16. {
  17. print BOLD, RED, "Negativo:", RESET . " El servicio $varb2 existe\n";
  18. }
  19. }
  20.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Obtengo:
No existe El archivo /etc/inetd.conf no existe en el sistema o no puede ser accedido


Muchas gracias.
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Publicidad

Re: Comprobación de lectura de archivo

Notapor explorer » 2012-02-19 19:46 @865

Ese fichero no está en todos los sistemas. En Debian sí está, pero no en OpenSUSE.

Y si está, depende de los permisos de lectura que tenga, para que pueda ser accedido por el usuario que ejecuta el programa.

¿Has hecho un ls -al /etc/inetd.conf para comprobar su existencia?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Comprobación de lectura de archivo

Notapor situ » 2012-02-19 19:53 @870

Los permisos están bien, estoy corriendo el script como root.

Sintáxis: [ Descargar ] [ Ocultar ]
  1. linux # ls -al /etc/inetd.conf 
  2. -rw-r--r-- 1 root root 79 2012-02-19 21:00 /etc/inetd.conf 


Con este script si anda:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. print "puedo leerlo\n" if -r "/etc/inetd.conf"
  2.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Resultado:
linux # perl 1.pl
puedo leerlo
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Re: Comprobación de lectura de archivo

Notapor explorer » 2012-02-19 21:43 @947

El error está en la línea 6. Falta un '!' delante del '-r'.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

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