Syshelp: Unix epoch

 Unix time, odnosno epoch (Unix time) je, jednostavno rečeno, broj sekundi proteklih od ponoći 1. siječnja 1970. godine po UTC-u (Universal Time Code). Ovaj se broj rabi interno na svakom Unix/Linux sustavu u razne svrhe, ali je prilično skriven od pogleda. Češće će ga susresti programeri, nego sistem administratori, ali je korisno znati što predstavlja ovaj broj i kako ga rabiti.

S Linuxom dolazi GNU naredba date, koja podržava epoch format vremena. Kako ćemo saznati koliko je sekundi proteklo od ponoći 1. siječnja 1970? Vrlo jednostavno, samo treba upisati:

# date +'%s' 
1192884485

Kao što se može vidjeti, radi se o 10-znamenkastom broju, iako sam broj znamenki nije fiksan. Broj je s 9-znamenkastog na 10-znamenkasti broj prešao 9. rujna 2001. godine. Kako je interna reprezentacija 32-bitna (signed), a maksimalni pozitivni broj koji se može zabilježiti 32-bitno je 2147483647, proizlazi da će krajnji datum koju ovaj broj može prikazati biti 19. siječnja 2038. godine. Poslije toga, slično problemu Y2K, brojač se vraća na nulu i vrijeme 1. siječnja 1970. Više o tom problemu možete pogledati na Wikipedijinim stranicama: http://en.wikipedia.org/wiki/Year_2038_problem.

Iako se epoch ne susreće često, treba imati na umu da je interno itekako u uporabi, te ga rabe neki servisi za logiranje. Može se naći i u logovima ADSL i kabelskih "modema", dakle korisno je znati o čemu se radi.

Relativno je lako prikazati trenutno vrijeme u epoch vremenu, ali konverzija u ljudima razumljivo vrijeme nije toliko lagana kako bi trebala biti. Prikazat ćemo (zahvaljujući Unix i Linux guruima na Usenet grupi hr.comp.os.linux) kako konvertirati Unix vrijeme u ljudima razumljiviji oblik:

# date -d '1970-01-01 UTC 1192884485 seconds' 
Sat Oct 20 14:48:05 CEST 2007
# perl -e 'print scalar localtime shift @ARGV,"\n";' 1192884485
Sat Oct 20 14:48:05 2007
# php -r 'echo date("r", $argv[1]) ."\n";' 1192884485
Sat, 20 Oct 2007 14:48:05 +0200

Na kraju, postoji čitav niz web stranica koje mogu ovu konverziju izvesti bez previše kompliciranja, a jedna od njih je http://www.esqsoft.com/javascript_examples/date-to-epoch.htm.

Koji ćete pristup rabiti, ostaje jedino vama na volju. Više informacija o epochu, kao i uvijek, možete saznati na Wikipedijinim stranicama: http://en.wikipedia.org/wiki/Unix_time

Vijesti: 
Kuharice: 
Vote: 
0
No votes yet