Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2015-11-15 11:45:20

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

[Solved] Jak przekonwertować timestamp pingu?

W pliku jest szereg linijek pogrupowanych w pary, przykładowo:

Kod:

1104/960 packets, 13% loss, min/avg/ewma/max = 27.847/31.767/31.536/74.384 ms
[1447551082.945905]

1404/1202 packets, 14% loss, min/avg/ewma/max = 27.847/31.797/31.833/74.384 ms
[1447551383.446381]

[1447551082.945905] odpowiada za timestamp, który w ping można uzyskać przy pomocy opcji -D . Wszystkie te powyższe pary są oddzielone od siebie pustym wierszem.

Pytanie jest jak w tym pliku przekonwertować teraz ten timestamp do ludzkiej postaci?

Ostatnio edytowany przez morfik (2015-11-15 12:11:09)

Offline

 

#2  2015-11-15 11:49:17

  Piotr3ks - Też człowiek :-)

Piotr3ks
Też człowiek :-)
Skąd: Białystok
Zarejestrowany: 2007-06-24

Re: [Solved] Jak przekonwertować timestamp pingu?

Mozna tak przekonwertować:

Kod:

$ echo 1447551082.945905 | awk '{ print strftime("%c", $0); }'
nie, 15 lis 2015, 02:31:22

Ostatnio edytowany przez Piotr3ks (2015-11-15 11:49:45)

Offline

 

#3  2015-11-15 11:52:15

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [Solved] Jak przekonwertować timestamp pingu?

A jak to zrobić w tym pliku? Chodzi generalnie o to, by zamiast takiego wyjścia jak jest wyżej było coś w stylu:

Kod:

1104/960 packets, 13% loss, min/avg/ewma/max = 27.847/31.767/31.536/74.384 ms
[nie, 15 lis 2015, 02:31:22]

Ostatnio edytowany przez morfik (2015-11-15 11:53:28)

Offline

 

#4  2015-11-15 12:02:35

  Piotr3ks - Też człowiek :-)

Piotr3ks
Też człowiek :-)
Skąd: Białystok
Zarejestrowany: 2007-06-24

Re: [Solved] Jak przekonwertować timestamp pingu?

Kod:

$  awk '{ sub(/[0-9]{10}/, strftime("%c", substr($0,2,10))) }1' plik
PING google.pl (83.175.145.24) 56(84) bytes of data.
[nie, 15 lis 2015, 11:56:35.741565] 64 bytes from xxx (83.175.145.24): icmp_seq=1 ttl=61 time=0.654 ms
[nie, 15 lis 2015, 11:56:36.737593] 64 bytes from xxx (83.175.145.24): icmp_seq=2 ttl=61 time=0.827 ms
[nie, 15 lis 2015, 11:56:37.738456] 64 bytes from xxx (83.175.145.24): icmp_seq=3 ttl=61 time=0.608 ms
....................................

Oczywiście w strftime możesz podać swój format czasu.

Ostatnio edytowany przez Piotr3ks (2015-11-15 12:04:46)

Offline

 

#5  2015-11-15 12:06:20

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [Solved] Jak przekonwertować timestamp pingu?

Ok, działa. Jeszcze muszę tylko ten format dopracować, bo u mnie wyrzuca póki co [2015-11-15T02:31:22 CET.945905] ale nie powinno być z tym problemów. xD

Offline

 

#6  2015-11-15 12:07:40

  Piotr3ks - Też człowiek :-)

Piotr3ks
Też człowiek :-)
Skąd: Białystok
Zarejestrowany: 2007-06-24

Re: [Solved] Jak przekonwertować timestamp pingu?

To już kwestia doszlifowania :D

Offline

 

#7  2015-11-15 12:10:45

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [Solved] Jak przekonwertować timestamp pingu?

Teraz wygląda tak: [2015-11-15 02:46:23.393409] i jest ok. xD Dzięki za pomoc.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)