• Publicidad

Cómo hacer log en Perl

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

Cómo hacer log en Perl

Notapor edwardmorfa » 2015-11-05 07:47 @366

Hola, mis amigos de Perl internacional, quiero saber cómo puedo crear un log para cuando se ejecute este script guarde la fecha, hora y usuario que corrió este script. Debe ser almacenado en una ruta específica.

#!/usr/bin/perl
use strict;
use warnings;
use Filesys::DiskSpace;

# file system /home or /dev/sda5
my $dir = "/home";

# get data for /home fs
my ($fs_type, $fs_desc, $used, $avail, $fused, $favail) = df $dir;

# calculate free space in %
my $df_free = (($avail) / ($avail+$used)) * 100.0;

# display message
my $out = sprintf("Disk space on $dir == %0.2f\n",$df_free);
print $out;



Gracias
edwardmorfa
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2015-11-04 18:26 @810

Publicidad

Re: Cómo hacer log en Perl

Notapor explorer » 2015-11-06 15:56 @705

Pues abriendo el archivo de log, y escribiendo lo que queramos.

La fecha y la hora se puede conseguir llamando a localtime() en modo escalar:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
> perl -E 'say scalar localtime'
Fri Nov  6 21:55:25 2015
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
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: Cómo hacer log en Perl

Notapor edwardmorfa » 2015-11-06 19:24 @850

Gracias, explorer, disculpen la pregunta básica pero no sé Perl, solo estoy haciendo esto con solo conocimiento de lógica que tengo para cumplir un requerimiento de una tarea. Entonces, explorer, ¿cómo la guardo en una dirección específica para funcione como un log?


Mil gracias,
edwardmorfa
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2015-11-04 18:26 @810

Re: Cómo hacer log en Perl

Notapor explorer » 2015-11-07 06:15 @302

Llamamos log a un archivo -casi siempre en modo texto-, que consiste en registros -casi siempre son líneas terminadas en uno o dos caracteres de fin de línea-, que se van añadiendo al final del archivo, poniendo la marca de tiempo al comienzo de la línea.

Entonces, el trabajo del programa consiste en:
1) abrir el log en modo añadir (usar '>>' como indicador al open().

2) cuando suceda algo que queramos que quede registrado, creamos la marca de tiempo (usando el localtime() o la función strftime() del módulo POSIX (ver ejemplo en perldoc -f localtime). El resto de la línea queda a nuestro gusto. Lo sacamos con print() dirigido al gestor de archivo abierto obtenido con el open().

3) cuando vaya a terminar el programa, cerramos el archivo con el close().

A ver si con esto te vale. Si no, insiste. Y repasa las notas que te dio el profesor, porque seguro que la solución está ahí.

Aquí hay un ejemplo.
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: Cómo hacer log en Perl

Notapor edwardmorfa » 2015-11-12 13:54 @621

Mil gracias, hermano.
edwardmorfa
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2015-11-04 18:26 @810


Volver a Administración

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron