time / date
Förutom vanlig ”epoc”-tid (bas: 1970-01-01), använder OS X ”Mac absolute time” (CFAbsoluteTime; double) som är antalet sekunder relativt 2001-01-01 00:00:00 GMT. Detta värde kan vara både positivt (senare än 2001-01-01) och negativt (före 2001-01-01).
Skillnaden mellan epoch och CFAbsoluteTime är 978307200 sekunder.
För att få aktuell tid i epoch-tid:date +%s
För att få epoch-tid till läsbar form:date -r 1440139192
Exempel: Safari's History.db
Safari före OS X 10.9 Mavericks sparade historiken i en plist-fil med tiden i epoch-format. Numera är det en sqlite-databas, ~/Library/Safari/History.db
. Om man t.ex. vill få ut läsbara tider (tillsammans med löpnummer och sidans titel) ur Safaris History.db
, startar man sqlite3, öppnar filen (.open History.db
) och skriver sedan:
SELECT id,datetime(visit_time+978307200, 'unixepoch', 'localtime'),title FROM history_visits;
Man får då utskrift som denna:3165|2015-03-09 09:24:08|internt: sök ”lu byggnad” :: Search - Lunds universitet
Vill man se även den URL som anropades, skriver man:
SELECT history_visits.id,datetime(history_visits.visit_time+978307200, 'unixepoch', 'localtime'),history_visits.title,history_items.url
FROM history_items INNER JOIN history_visits
ON history_visits.id = history_items.id;
Man får då utskrift som:3165|2015-03-09 09:24:08|internt: sök ”lu byggnad” :: Search - Lunds universitet|https://zero.comaround.com/sv-se/search/content/126621/
Av skäl som undgår mig är det inte säkert att resultatet är lika omfattande, d.v.s. de två tabellerna, history_visits
och history_items
, innehåller olika mycket material!
Exempel: Safari's nedladdningshistoria
För att se vilka filer man har laddat ner i Safari kan man skriva följande:sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2
sedan:SELECT datetime(LSQuarantineTimeStamp+978307200, 'unixepoch', 'localtime'),LSQuarantineDataURLString,LSQuarantineOriginURLString FROM LSQuarantineEvent;
Man får då utskrift som:2015-08-10 08:27:49|https://admdownload.adobe.com/bin/live/AdobeFlashPlayer_18_a_install.dmg|https://get.adobe.com/
Ovanstående två exempel kan vara bra att känna till när man gör forensics på en misstänkt dator och behöver reda ut när en webbsida laddades. Notera att även om Safaris webbläsarhistorik är rensad, finns informationen kvar i History.db
!
Notera dock två saker:
1. De allra senaste webbaktiviteterna kanske inte finns i History.db
[ännu?]. Mekanismen bakom detta är oklar
2. Om Safari är igång är denna filen låst och man kommer inte att se någonting. Det räcker dock att göra en kopia av History.db
(även om Safari är igång) så kan man arbeta med den!
strftime
Timme: | Exempel: | |
%H | timmen (24-timmarsklocka) som decimaltal (00-23) | |
%k | timmen (24-timmarsklocka) som decimaltal (0-23); enkelsiffror föregås av ” ” | |
%I | timmen (24-timmarsklocka) som decimaltal (01-12) | |
%l | timmen (24-timmarsklocka) som decimaltal (1-12); enkelsiffror föregås av ” ” | |
Minut: | Exempel: | |
%M | minuten som decimaltal (00-59) | |
Sekund: | Exempel: | |
%S | sekunden som decimaltal (00-60) | |
%s | antal sekunder sedan Epoch, UTC | |
Dag: | Exempel: | |
%d | dagen i månaden som decimaltal (01-31) | |
%e | dagen i månaden som decimaltal (1-31); enkelsiffor föregås av ” ” | |
%A | dagens lokala långa namn | Fredag |
%a | dagens lokala korta namn | Fre |
%j | dagens årsnummer som decimaltal (001-366) | 352 |
%w | veckodagen (söndag första dagen i veckan) som decimaltal (0-6) | |
%u | veckodagen (måndag första veckodag) som decimaltal (1-7) | |
Vecka: | Exempel: | |
%U | veckonumret (söndag första veckodag) som decimaltal (00-53) | |
%W | veckonumret (måndag första veckodag) som decimaltal (00-53) | |
%V | veckonumret (måndag första veckodag) som decimaltal (01-53). Om veckan med 1 januari i har ≥ 4 dagar på det nya året är det vecka 1 annars är nästa vecka vecka 1 | |
Månad: | ||
%B | månadens lokala långa namn | December |
%b | månadens lokala korta namn | Dec |
%m | månaden som decimaltal (01-12) | 12 |
År: | Exempel: | |
%C | (år / 100) som decimaltal; enkelsiffror föregås av 0 | 20 |
%G %Y | året som decimaltal med fyra siffror | 2012 |
%g %y | året som decimaltal med två siffror | 12 |
Blandat: | Exempel: | |
%F | = ”%Y-%m-%d” | 2012-12-13 |
%R | = ”%H:%M” | 08:24 |
%r | = ”%I:%M:%S %p” | 08:25:11 am |
%T | = ”%H:%M:%S” | 08:25:33 |
%n | radmatning | |
%t | tabb | |
%c | lokal representation av datum och tid | Tor 13 Dec 08:25:58 2012 |
%p | lokal variant av ”ante meridiem” (a.m.) / ”post meridiem” (p.m.) | |
%X | lokal variant av tiden | 08:27:23 |
%x | lokal representation av datum | 13.12.2012 |
%+ | lokal variant av datum och tid (samma som kommandot date) | Tor 13 Dec 2012 08:28:10 CET |
%Z | tidssonens namn | CET |
%z | tidszonens skillnad mot UTC | +0100 |