Дата-время в юникс формате.

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Slider007
ефрейтор
Сообщения: 62
Зарегистрирован: 2006-08-17 13:29:08
Контактная информация:

Дата-время в юникс формате.

Непрочитанное сообщение Slider007 » 2007-03-09 8:56:01

Привет ещё раз всем.

Задумал я сотворить кое-что с логами сквида, и у меня возникла проблема - дата и время в логе записано в юникс формате, типа 1173165443.739

А проблема заключается в том, что я не умею переводить дату из юникс формата в нормальную привычную нам дату вида dd/mm/yyyy.

Знаю что 1173165443.739 это количество секунд прошедших с 01/01/1970, но чего дальше с этими секундами делать не знаю.

Подскажите пожалуйста как перевести дату из юникс формата и обратно средствами Шелла. Может быть функции есть стандартные ?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-03-09 9:01:42

хм.. а я даже не знаю как шеллом...
тока перлом/php
Убей их всех! Бог потом рассортирует...

Slider007
ефрейтор
Сообщения: 62
Зарегистрирован: 2006-08-17 13:29:08
Контактная информация:

Непрочитанное сообщение Slider007 » 2007-03-09 9:17:38

Мда, жаль, я тут перловский скрипт откопал, но мне плохо от его вида стало ...
Ладно буду думать. Спасибо :)

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-03-09 9:33:43

плохо-неплохо, но с учётом обычного объёма логов сквида - лучше на перле сделать.
ну или на php.
на шелле будет медленно очень - чтоб ты не делал.
Убей их всех! Бог потом рассортирует...

nomad
рядовой
Сообщения: 43
Зарегистрирован: 2006-04-06 16:52:27
Откуда: Russia, Chelyabinsk
Контактная информация:

Непрочитанное сообщение nomad » 2007-03-09 10:24:38

Код: Выделить всё

date --date=@1173165443.739 +%Y-%m-%d\ %H:%M:%S
Написано в info по date в разделе Date Input

Код: Выделить всё

2007-03-06 12:17:23

Slider007
ефрейтор
Сообщения: 62
Зарегистрирован: 2006-08-17 13:29:08
Контактная информация:

Непрочитанное сообщение Slider007 » 2007-03-09 11:14:01

nomad писал(а):

Код: Выделить всё

date --date=@1173165443.739 +%Y-%m-%d\ %H:%M:%S
Написано в info по date в разделе Date Input

Код: Выделить всё

2007-03-06 12:17:23
Это на чем написано ? Шелл это выполнять не хочет.

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-03-09 11:29:24

date -r 1173428672

Аватара пользователя
idle
мл. сержант
Сообщения: 80
Зарегистрирован: 2007-02-28 12:21:52
Откуда: Барселона
Контактная информация:

Непрочитанное сообщение idle » 2007-03-09 11:39:59

Slider007
Зачем выдумывать велосипед, если существует огромное количество разнообразных анализаторов логов сквида?

На perl можно сделать так:

Код: Выделить всё

cat access.log | perl -lne'for([split]){($s,$min,$h,$d,$m)=localtime(@$_[0]);print"date: $m-$d $h:$min user: @$_[2] url: @$_[6]"}'

nomad
рядовой
Сообщения: 43
Зарегистрирован: 2006-04-06 16:52:27
Откуда: Russia, Chelyabinsk
Контактная информация:

Непрочитанное сообщение nomad » 2007-03-09 12:08:34

Короче: в Linux date --date=@12134435, во фре date -r 1231234

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-03-09 12:57:51

Как вариант в squid.conf:

Код: Выделить всё

emulate_httpd_log on
И смотреть нормальные логи:

Код: Выделить всё

192.168.2.2 - - [09/Mar/2007:00:59:56 +0300] "GET http://esuite.us.drweb.com/update/4.33/drwbases/state HTTP/1.1" 304 285 TCP_MISS:DIRECT
192.168.2.2 - - [09/Mar/2007:00:59:56 +0300] "GET http://esuite.us.drweb.com/update/4.33/drwupgrade/state HTTP/1.1" 304 285 TCP_MISS:DIRECT
192.168.2.2 - - [09/Mar/2007:00:59:57 +0300] "GET http://esuite.us.drweb.com/update/4.33/drwagntd/state HTTP/1.1" 304 285 TCP_MISS:DIRECT
192.168.2.2 - - [09/Mar/2007:00:59:58 +0300] "GET http://esuite.us.drweb.com/update/4.33/drwconsole/state HTTP/1.1" 304 285 TCP_MISS:DIRECT
192.168.2.2 - - [09/Mar/2007:00:59:58 +0300] "GET http://esuite.us.drweb.com/update/4.33/drwcs/state HTTP/1.1" 304 285 TCP_MISS:DIRECT
192.168.2.2 - - [09/Mar/2007:01:59:56 +0300] "GET http://esuite.us.drweb.com/update/4.33/drwbases/state HTTP/1.1" 304 285 TCP_MISS:DIRECT
192.168.2.2 - - [09/Mar/2007:01:59:56 +0300] "GET http://esuite.us.drweb.com/update/4.33/drwupgrade/state HTTP/1.1" 304 285 TCP_MISS:DIRECT
192.168.2.2 - - [09/Mar/2007:01:59:57 +0300] "GET http://esuite.us.drweb.com/update/4.33/drwagntd/state HTTP/1.1" 304 285 TCP_MISS:DIRECT
192.168.2.2 - - [09/Mar/2007:01:59:57 +0300] "GET http://esuite.us.drweb.com/update/4.33/drwconsole/state HTTP/1.1" 304 285 TCP_MISS:DIRECT
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Sapsan
рядовой
Сообщения: 21
Зарегистрирован: 2006-11-09 14:43:21
Контактная информация:

Непрочитанное сообщение Sapsan » 2007-03-12 7:55:27

я такой вот скриптик юзаю

Код: Выделить всё

#!/usr/bin/perl
while(<>){
    ($t,$a)=split(" ",$_,2);
    if(length $t==14){
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($t);
        printf "%02u/%02u/%02u %02u:%02u:%02u %s",
           1900+$year,$mon+1,$mday,$hour,$min,$sec,$a;
    }
    else {
      print $_;
    }
}
просто добавляем его в конвеер и всё становится красиво.

nomad
рядовой
Сообщения: 43
Зарегистрирован: 2006-04-06 16:52:27
Откуда: Russia, Chelyabinsk
Контактная информация:

Непрочитанное сообщение nomad » 2007-03-12 8:27:30

http://bash.org.ru/quote.php?num=6011

Код: Выделить всё

ya_frosia: Связка ломов, как правило, тонет.
alexei: ya_frosia: Но в ртути прекрасно плавает.
zoogenic: alexei: Но если ломы урановые, то и во ртути тонут.
alexei: zoogenic: сам топи урановые ломы в ртути.
Ребят, пользуйтесь sarg'ом уже =)