Portál AbcLinuxu, 25. dubna 2024 04:15


Dotaz: Ukladani casu spusteni a ukonceni systemu

28.9.2007 10:22 Geralt
Ukladani casu spusteni a ukonceni systemu
Přečteno: 349×
Odpovědět | Admin
Ahoj,

jsem na linuxu pomerne kratkou dobu a jeste se mi nepodarilo proniknout "pod poklicku".

Zajimalo by me, jakym zpusobem je mozne vytvorit skript (nebo neco jineho), ktery by mi vzdy pri startu systemu zapsal do souboru aktualni cas, stejne tak pri ukonceni systemu, kdy by nejlepe mohl spocitat jak dlouho byl pocitac spusteny.

Nemam predevsim predstavu, jake technologie se k tomu hodi pouzit, a tudiz co bych si mel nastudovat, abych byl schopny takovyto skript napsat.

Diky za radu, Geralt
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.9.2007 10:39 edois
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
Odpovědět | | Sbalit | Link | Blokovat | Admin
udelej si soubor /etc/init.d/stopstartlog (pojmenuj si ho jak chces):
#!/bin/bash

LOGFILE="/var/log/stopstart.log"
DATE=/bin/date
FORMAT="+%Y-%m-%d %H:%M:%S"

case $1 in

    start)
        $DATE "$FORMAT Started" >> $LOGFILE
        ;;

    stop)
        $DATE "$FORMAT Stopped" >> $LOGFILE
        ;;

    *)
        echo "Usage: $0 {start|stop}"
        ;;

esac
nastav mu prava, aby byl spustitelny
chmod 755 /etc/init.d/stopstartlog
a udelej linky do rc.d, napr. v debianu to je
update-rc.d stopstartlog defaults
pak by ti to melo hezky logovat :)
28.9.2007 11:13 edois
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
a aby se ti ten log nezahltil, vytvor jeste soubor /etc/logrotate.d/stopstartlog:
/var/log/stopstart.log {
    weekly
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    create 640 root adm
}
28.9.2007 12:02 Lu-Tze | skóre: 15 | blog: Lu-Tzeho blog
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
Taky je potřeba řešit hibernaci.
28.9.2007 12:31 Lu-Tze | skóre: 15 | blog: Lu-Tzeho blog
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
Teda, je-li skutečně cílem
kdy by nejlepe mohl spocitat jak dlouho byl pocitac spusteny.
28.9.2007 12:33 edois
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
do /etc/hibernate/common.conf staci pridat:
OnSuspend 20 /etc/init.d/stopstartlog stop
OnResume 20 /etc/init.d/stopstartlog start
28.9.2007 10:56 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
Odpovědět | | Sbalit | Link | Blokovat | Admin
A k čemu to potřebuješ ? Podle mě je to na nic.

Ale poradím man date.

Takže při startu si zapsat datum:
echo "start" >> soubor.txt
date +"%d.%m.%Y %H:%M" >> soubor.txt
A při ukončení taky
echo "stop" >> soubor.txt
date +"%d.%m.%Y %H:%M" >> soubor.txt
A >> zajistí že se to do souboru bude připisovat pořád na konec. (semtam ten soubor budeš muset smazat)

No a kam to dát pro start a konec je trochu závislé na distribuci takže pokud napíšeš jaká distribuce tak ti poradí přesněji.
28.9.2007 11:22 edois
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
takhle mu to ale na jeden radek zaloguje 'stop' a na jeden datum. nakonec se v tom nikdo nevyzna ;))

/etc/init.d/ je snad v kazde slusne distribuci, ne?
28.9.2007 11:53 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
Jasně tak si to třeba upravit aby echo neodřádkovalo :-)

Jinak /etc/init.d/ není v každé distribuci, ovšem já ho mám takže bych to u sebe řešil jako v příkladu nademnou.
Josef Kufner avatar 28.9.2007 11:25 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jak tak na to tady koukám, tak pokud budeš chtít zapisovat do klasických logů a používat syslog, koukni na program logger. Zprávy které takto zaloguješ budeš mít na obvyklých místech (/var/log) se vší parádou a logrotate už tyhle logy taky obsluhuje, takže o starost méně.
Hello world ! Segmentation fault (core dumped)
28.9.2007 11:45 edois
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
ja osobne (kdybych chtel takovouhle vec sledovat softwareove) bych si to do syslogu psat nenechal. do syslogu jde docela dost hlasek, zatimco hlaska o startu nebo vypnuti systemu by tam byla v prumeru tak jednou za pul roku..
frEon avatar 28.9.2007 12:18 frEon | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
Odpovědět | | Sbalit | Link | Blokovat | Admin
neloguje tohle sar?
Talking about music is like dancing to architecture.
28.9.2007 12:22 Geralt
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dekuji vam vsem za odpovedi, predevsim edoisovi.

Napsal jsem si presne takovy soubor, umistil ho do /etc/init.d/ a nastavil mu prava ke spusteni ... Bohuzel nevim, jak udelat linky do rc.d, ani co to vlastne je ... mam nainstalovany Kubuntu linux ... poradte prosim ...

Jeste bych chtel poprosit, jestli by mi nekdo obsah souboru /etc/init.d/stopstartlog, pripadne i /etc/logrotate.d/stopstartlog neokomentoval, abych mel lepsi predstavu, co ze se vlastne deje ...

Diky moc Geralt

BTW. bude mi to predevsim k tomu, abych mohl kdykoliv jednoduse zjistit, jak dlouho pracuju, sedim u notebooku, nebo jak velkou mam spotrebu energie ...
28.9.2007 12:41 edois
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
*ubuntu je debian, takze
update-rc.d stopstartlog defaults
initskript:
#!/bin/bash

# cesta k logu
LOGFILE="/var/log/stopstart.log"

# cesta k programu date
DATE=/bin/date

# format data
FORMAT="+%Y-%m-%d %H:%M:%S"

# case, proste vezmi $1 (prvni parametr) a zkousej ruzne moznosti
# taky by se to dalo udelat pres if, ale takhle je to prehlednejsi
case $1 in

    # je to 'start'?
    start)
        # pokud ano, spust date se spravnym formatem
        # vystup je presmerovan do logu
        $DATE "$FORMAT Started" >> $LOGFILE
        ;;

    # je to 'stop'?
    stop)
        # pokud ano, spust date se spravnym formatem,
        # vystup je presmerovan do logu
        $DATE "$FORMAT Stopped" >> $LOGFILE
        ;;

    # neni to ani 'start' ani 'stop'?
    *)
        # vypiseme pouziti
        # $0 je 'nulty parametr', coz je nazev programu, ktery spoustime
        echo "Usage: $0 {start|stop}"
        ;;

# konec toho case
esac
logrotate:
# ktere soubory rotovat:
/var/log/stopstart.log {
    # rotovat tydne:
    weekly

    # pokud ten log chybi, tak nam to nevadi, proste nerotujeme:
    missingok

    # po 52. zarotovani se log maze. tzn. po roce
    rotate 52

    # komprimuj zarotovane logy
    compress

    # tohle presne nevim, mam pocit, ze je to to, aby se komprimoval
    # az po dvou dnech - prvni se "jen" zarotuje a dalsi zakomprimuje
    # radsy se kouknete do manualu ;)
    delaycompress

    # pokud je log prazdny, nema cenu ho rotovat:
    notifempty

    # po zarotovani (prejmenovani) opet vytvorit puvodni soubor
    create 640 root adm
}
28.9.2007 12:47 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
Jak spustit skript při startu systému?
#!/bin/bash -> kterým programem ten skript bude interpretován

LOGFILE="/var/log/stopstart.log" -> kam ukládat data
DATE=/bin/date                   -> kde je program date
FORMAT="+%Y-%m-%d %H:%M:%S"      -> formát data jak se bude ukládat

case $1 in                       -> podle toho co je uvedené jako parametr skriptu
                                    spustím příslušný řádek dále

    start)                        
        $DATE "$FORMAT Started" >> $LOGFILE  -> tento řádek se spustí
                                                při parametru start
                                                a vlastně se spustí 
                                                /bin/date "+%Y-%m-%d %H:%M:%S Started" >> /var/log/stopstart.log
        ;;

    stop)                                    
        $DATE "$FORMAT Stopped" >> $LOGFILE  -> při stop
        ;;

    *)
        echo "Usage: $0 {start|stop}"         -> při jiném parametru
        ;;

esac                                          -> konec 
28.9.2007 13:16 Geralt
Rozbalit Rozbalit vše Re: Ukladani casu spusteni a ukonceni systemu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dekuji vsechno funguje :)

Geralt

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.