Ostatnie włączenie komputera - potrzebny skrypt


#1

Witam. Dość pilnie potrzebuję czegoś, co będzie mnie informowało o dacie/godzinie ostatniego włączenia komputera. Komp na którym ma to działać ma zainstalowaną najnowszą wersję Ubuntu (jeżeli ma to znaczenie).

Sprawa jest dość pilna, bo o 13 wyjeżdżam, więc gdyby był ktoś tak miły, to z góry dziękuję.


(system) #2

nie wiem czy dokładnie o to chodziło ale może

last | grep "system boot"

wypisuje to co prawda wszystkie restarty ale można by okroić do ostatniego

to by chyba to co potzrebujesz:

last |grep "system boot" | head -1

a cały skrypcik mogłby wyglądać np. tak

#!/bin/bash

last | grep "system boot" | head -1 > last_boot.txt

sprawdziłem to na Archlinux bo do Ubuntu w tej chwili brak dostępu ale powinno zadziałać


#3

Dzięi, chyba o to chodziło. NIe wiem tylko dlaczego wyświetla tylko wyniki z dzisiaj i wszystko pokazuje jako "reboot", nawet jak wyłączam kompa i włączam.

Jeszcze jedno. Z debianopochodnymi nie miałem nigdy do czynienia i nie wiem gdzie ten skrypt umieścić, a nie mam czasu szukać, bo pakowanie mnie właśnie czeka.


(system) #4

również zastanawiałem się dlaczego jest zawsze reboot, nawet gdy wyłączam komputer i powiem szczerze że nie wiem ale z ciekawości jak będę miał więcej czasu to poszukam.

Co do Debianowatych to już dosyć dawno nie używałem ale chyba było coś takiego jak /etc/rc.d/rc.local

i tam można umieszczać swoje skrypciki


#5

Tam też go umieściłem, ale podczas uruchamiania skryptu wywala mi

[: 20: ==: unexpected operator

Może przed skryptem i po nim coś trzeba dopisać? Nigdy skryptów nie pisałem i jestem w tym zielony.


EDIT.

Dobra, w pośpiechu chyba jednak nie powinno się nic robić. Gdybym przeczytał jeszcze raz treść tego błędu to zauważyłbym że krzyczy na mnie za 2 znaki "=".

Już wszystko działa. Dzięki.


(nintyfan) #6

Nie jestem obeznany w temacie, ale Ubuntu trzyma chyba skrypty startowe w /etc/init.d . Dodatkowo w Ubuntu działa Upstart, którego skrypty są przechowywane w /etc/event.d .

Przykładowy skrypt upstarta wygląda następująco:

start on runlevel 2

start on runlevel 3

start on runlevel 5

start on runlevel 6


exec

W jednym skrypcie powinien być sposób na pobranie aktualnego poziomu uruchamiania. Wystarczy więc napisać jakiś skrypt w Bashu, dodać rozeznanie czy nie mamy z poziomem 0 lub 6 i wstawić odpowiedni komunikat do odpowiedniego pliku.

/etc/init.d jest niemal identyczny jak /etc/rc.d . Pliki prawdopodobnie muszą jednak mieć swój nagłówek. Debian korzysta z dość autorskiego systemu init, ale może obejdzie się bez nagłówka z zależnościami. Otóż wrzucasz swój skrypt do /etc/init.d . Rozpoznajesz rodzaj akcji po 1. parametru . Następnie tworzysz jedno dowiązanie symboliczne w katalogach z odpowiednimi runlevelami. Konstrukcja nazwy pliku jest jednak ściśle określono. Na początku podajesz S , następnie kolejność w jakim skrypt ma zostać odpalony, a następnie dalsza nazwę.

Co do błędu, to w przypadku używania zmiennych środowiskowych sugeruje umieszczanie ich w cudzysłowiu :wink: .

Trochę namieszałem.