2010-02-10 26 views
8

Tengo un script Perl que se ejecutará en un trabajo cron en linux suse. Tomará como entrada un archivo de registro que se generó ayer. El nombre de archivo del registro contiene la fecha (es decir, log.20100209)¿Cómo puedo obtener y formatear la fecha de ayer en la línea de comando?

¿Puedo enviar la fecha de ayer con el formato en el mensaje? ¿Debo crear un script adicional para obtener la fecha y ejecutar? Si es así, ¿cómo puedo hacer eso?

Gracias

perl myscript.pl -f log.20100209 

Editar

Gracias por su ayuda

funcionó con:

perl myscript.pl -f log.`date --date='yesterday' '+%Y%m%d'` 

Respuesta

28

fecha de GNU:

date --date='yesterday' '+%Y%m%d' 
+0

+1 I preferiría esto a mi propio Perl a continuación :) –

+0

Fácil y legible, gracias! – Cesar

1

Usted puede obtener la fecha de ayer como esto:

perl -we'@a=localtime(time-24*3600);printf "%04d%02d%02d", $a[5]+1900, $a[4]+1, $a[3]' 

Puede utilizar esta cuando se llama a la secuencia de comandos en el indicador:

perl myscript.pl -f log.`perl -we'@a=localtime(time-24*3600);printf "%04d%02d%02d", $a[5]+1900, $a[4]+1, $a[3]'` 

Pero esto no se puede leer, y yo sugiero que escriba un guión adecuado que calcula la fecha de ayer, y luego llama myscript.pl.

+0

También vea estos: http://theoryx5.uwinnipeg.ca/CPAN/perl/pod/perlfaq4/How_do_I_find_yesterday_spa_fecha.html y http://flux.org.uk/howto/perl/yesterday_date –

0

que no es necesario enviar la fecha de ayer como un parámetro adicional. Ya se puede conseguir que el uso de otros dos métodos:

  1. de Perl integrada en el tiempo(), hora local(), o gmtime() funciones le dará la fecha y hora actuales, y se puede trabajar con eso para determinar la fecha de ayer.
  2. Ya está incluido en el nombre de su archivo de registro, por lo que puede analizar el nombre del archivo para obtener la fecha en el formato que necesita.

Perl tiene a lot of modules para trabajar con las fechas y horas, dependiendo exactamente de lo que necesite hacer.

+0

Gracias, pero quiero algo simple que permita mantenerse independiente del archivo de registro – Cesar

Cuestiones relacionadas