Klaas' Linux-tips
Autopoweroff
shell-script "autopoweroff"
Dit shell script zorgt ervoor dat je Linux systeem op een in te stellen tijd vanzelf afsluit en uitschakeld.
Ik heb dit script gebruikt voor onze Linux thuis-server. Deze schakelde 'smorgens in om 8 uur via het BIOS. Dit script schakeld dan aan het einde van de dag de server uit om stroom te besparen als er geen gebruikers zijn.
Voor het afsluiten controleerd het script of er nog "klanten" op het netwerk aktief zijn. Zo ja dan word de server niet afgesloten.
Het is de bedoeling dit script via cron aan te roepen door het in /etc/cron.hourly te plaatsen.

Pas de variabelen aan zoals netwerk-adressen en bereik van de DHCP server (indien nodig).

Download autopoweroff hier door rechtsklikken en opslaan te kiezen.

Regel #0 : #!/bin/bash
Regel #1 : #script om de server na middernacht automatisch af te laten sluiten.
Regel #2 : #voor het geval ik het vergeet..
Regel #3 : #script kijkt eerst naar de tijd en daarna controleerd 'ie of er nog iemand
Regel #4 : #op het net zit.
Regel #5 : #bedoeld om via cron te starten. (elk uur)
Regel #6 : #enkele constanten:
Regel #7 : #14 feb 2002: eerste versie
Regel #8 : #15 feb alle "echo's" via funktie debugecho. anders allemaal email naar root !!
Regel #9 :
Regel #10 : DEBUGECHO="0"
Regel #11 :
Regel #12 : #let op DECIMAAL! en punt aan einde NETWORK !
Regel #13 : NETWORK="192.168.0."
Regel #14 : NETWORK_RANGE_START="2"
Regel #15 : NETWORK_RANGE_STOP="25"
Regel #16 :
Regel #17 : #tijd dat de server afgesloten moet worden als er niemand gebruik maakt
Regel #18 : #van het netwerk.
Regel #19 : STOPTIJDLAAG="0"
Regel #20 : STOPTIJDHOOG="7"
Regel #21 :
Regel #22 : #kijk of een ip nummer nog in gebruik is op het netwerk
Regel #23 : function ONLINE ()
Regel #24 : {
Regel #25 : if /bin/ping -c1 "$NETWORK""$1" > /dev/null 2>&1
Regel #26 : then
Regel #27 : dbgecho "$NETWORK$1 is WEL aanwezig op het netwerk"
Regel #28 : return 0
Regel #29 : else
Regel #30 : dbgecho "$NETWORK$1 is NIET aanwezig op het netwerk"
Regel #31 : return 1
Regel #32 : fi
Regel #33 :
Regel #34 : }
Regel #35 :
Regel #36 :
Regel #37 : #kijk of in een reeks ip-nummers er nog een in gebruik is.
Regel #38 : function IsErNogIemand ()
Regel #39 : {
Regel #40 : local -i i
Regel #41 : for ((i=$NETWORK_RANGE_START; i <= NETWORK_RANGE_STOP; i++ ))
Regel #42 : do
Regel #43 : if ONLINE $i
Regel #44 : then
Regel #45 : dbgecho "Er is nog iemand online. We gaan nog niet afsluiten..."
Regel #46 : exit 0
Regel #47 : fi
Regel #48 : done
Regel #49 :
Regel #50 : }
Regel #51 :
Regel #52 :
Regel #53 :
Regel #54 : function dbgecho()
Regel #55 : {
Regel #56 : if [ "$DEBUGECHO" = "1" ]; then
Regel #57 : echo $@
Regel #58 : fi
Regel #59 : }
Regel #60 :
Regel #61 :
Regel #62 : #we kijken niet op een minuutje dus alleen de hele uren.
Regel #63 : UUR=`date +%H`
Regel #64 :
Regel #65 : if [ "$UUR" -ge $STOPTIJDLAAG -a "$UUR" -le $STOPTIJDHOOG ] ; then
Regel #66 : dbgecho "Als er niemand op het netwerk aanwezig is word de server afgesloten..."
Regel #67 : else
Regel #68 : dbgecho "Het is niet de juiste tijd"
Regel #69 : logger autopoweroff: Niet afsluiten niet binnen tijd-bereik.
Regel #70 : exit 0
Regel #71 : fi
Regel #72 :
Regel #73 : #we kijken of er nog iemand aanwezig is...
Regel #74 : IsErNogIemand
Regel #75 :
Regel #76 : #Hier aangekomen is er niemand meer op het netwerk. We gaan dus afsluiten..
Regel #77 : dbgecho "DE SERVER WORD AFGESLOTEN."
Regel #78 : logger autopoweroff: SYSTEEM WORD AFGESLOTEN. GEEN GEBRUIKERS MEER OP HET NETWERK.
Regel #79 : poweroff
Regel #80 :
Regel #81 :
Regel #82 :
Info is (c) Klaas Noordstra | Webmaster:Klaas | disclaimer