Portál AbcLinuxu, 25. dubna 2024 04:15
#!/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}" ;; esacnastav mu prava, aby byl spustitelny
chmod 755 /etc/init.d/stopstartloga udelej linky do rc.d, napr. v debianu to je
update-rc.d stopstartlog defaultspak by ti to melo hezky logovat :)
/var/log/stopstart.log { weekly missingok rotate 52 compress delaycompress notifempty create 640 root adm }
kdy by nejlepe mohl spocitat jak dlouho byl pocitac spusteny.
OnSuspend 20 /etc/init.d/stopstartlog stop OnResume 20 /etc/init.d/stopstartlog start
echo "start" >> soubor.txt date +"%d.%m.%Y %H:%M" >> soubor.txtA při ukončení taky
echo "stop" >> soubor.txt date +"%d.%m.%Y %H:%M" >> soubor.txtA >> 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.
update-rc.d stopstartlog defaultsinitskript:
#!/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 esaclogrotate:
# 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 }
#!/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
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.