PDA

Просмотр полной версии : Unix Time


hpagof
06.05.2010, 10:20
Прошу помочь, у меня стоит squid и sags. Начальство хочет смотреть логи в виде текстового документа, логи у меня типа: 1268901385.523 717 192.168.1.1 TCP_MISS/200 472 GET http://info.music.metaservices.microsoft.com/cdinfo/GetMDRCDPOSTURL.aspx? - DEFAULT_PARENT/127.0.0.1 text
Мне всё понятно, но нужно им конвертировать Юникс тайм в нормальную дату. Т.е скрипт который конвертировал только ЮниксТайм в файле лога который я им буду предоставлять т.е так:
Thu, 18 Mar 2010 08:36:25 GMT 717 192.168.1.1 TCP_MISS/200 472 GET http://info.music.metaservices.microsoft.com/cdinfo/GetMDRCDPOSTURL.aspx? - DEFAULT_PARENT/127.0.0.1 text Посоветуйте что нибудь

krypt3r
06.05.2010, 10:46
Little example

#!/usr/bin/perl

use strict;
use warnings;
use POSIX qw /strftime/;

my $time = 1268901385.523;
print strftime ("%a, %d %b %Y %H:%M:%S %Z", gmtime $time), "\n";

hpagof
06.05.2010, 12:41
Разве этот код не выполняется только для одной конкретной даты в логах ?

krypt3r
06.05.2010, 12:58
Я вам пример дал, как из единичного значения unixtime'а перевести в более читаемый формат. Функция strftime() вам поможет

hpagof
06.05.2010, 14:39
Создал файл unixtime.pl со следующим содержанием:
#! /usr/bin/perl -p
s/^\d+\.\d+/localtime $&/e;
И вополнил

perl unixtime.pl /путь к логам

Спасибо за помощь тебе!