[Ubuntu] Zmiana sposobu wyświetlania daty i godziny w logach


(Otak) #1

Po wywołaniu polecenie np. lastb mam datę i godzinę w poniższym fromacie.

Cytat
Tue Aug 1 17:28 - 17:42

Chę mieć datę w formacie RRRR.MM.DD gg:mm.

Powyższe ma dotyczyć wszystkich logów.


(Domker) #2

lastb ma ograniczone formatowanie daty/czasu.
Do wyboru są “notime”, “short”,“full” i “iso”.
Możesz jedynie użyć konkretnego + sed’a np. do zmiany formatowania

Najbliższy twojego szablonu jest “iso”:
2017-08-27T00:00:01+0200
, czyli RRRR-MM-DD T gg:mm:ss+oznaczenie strefy czasowej.

możesz jednak nieco zmodyfikować tak:
--time-format iso | sed 's/T/ /g;s/+0200//g;s@\(..\):\(..\):\(..\)@\1:\2@g'
Powyższy “sed” wywala “T”, strefę czasową i usuwa sekundy z formatowania ISO.
wygląda to tak:
2017-08-27 00:00

Jak jeszcze nie pasują Ci myślniki to też można to zmienić, ale składnia już się wydłuża ^^:
--time-format iso | sed 's@\(..\)-\(..\)-\(..\)@\1.\2.\3@g;s/T/ /g;s/+0200//g;s@\(..\):\(..\):\(..\)@\1:\2@g'
Masz wtedy tak jak chciałeś:
2017.08.27 00:00

Oczywiście możesz dodać “lastb” z tym parametrem do aliasów, bo wpisywać wątpię, żeby Ci się chciało :slight_smile:


(Otak) #3

Działa w linni poleceń. Nie chce działać w skrypcie, który ma zapisywać do pliku - poniżej cześć skryptu oraz błąd.

Skrypt:.

lastb --time-format iso | sed ‘s@(…)-(…)-(…)@\1.\2.\3@g;s/T/ /g;s/+0200//g;s@(…):(…):(…)@\1:\2@g’ -20 >> $plik

Błąd:

sed: invalid option – '2’
Usage: sed [OPTION]… {script-only-if-no-other-script} [input-file]…


(Domker) #4

Nie działa, bo dodałeś “-20” przed “>>“
Parametry do lastb możesz dodawać przed znakiem " |”.
Jeżeli dodajesz po sedzie to parametr odnosi się do sida, a nie lastb.
Wykasuj “-20” i dodaj to przed " |” - powinno działać.


(Otak) #5

@Domker działa.

Dzięki.