ubuntuusers.de

Verständnissfrage

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

Commerzgandalf

Anmeldungsdatum:
23. Juni 2013

Beiträge: Zähle...

Hi, ich bin immernoch am lernen. Momentan halte ich mich am AutoShutdown Script aus dem Wiki auf. Das funktioniert bei mir nicht. Deshalb bin ich gerade dabei das Script zu zerlegen und zu verstehen was da passiert. Und wo es hängt. Dazu habe ich mal ein paar Passagen kopiert zu denen ich Fragen habe.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
logit()
{
	logger -p local0.notice -s -- AutoShutdown: $*
}


online()
{
for i in $*; do
		ping $i -c1
		if [ "$?" == "0" ]; then
		  logit PC $i ist noch aktiv, automatisches Herunterfahren wurde abgebrochen 
		  return 1 
		fi
        done
}

online $CLIENTS
        if [ "$?" == "1" ]; then
                return 1
        fi

Meine erste Frage, Wozu ist die logit Funktion? Da es sich ja eigentlich um ein von cron ausgeführtes Script handelt erfolgt keine Ausgabe auf dem Monitor. Das logit irgendetwas in eine Datei schreibt konnte ich nicht erkennen.

Ich habe eine Conf Datei in das Script geschrieben in der die Variable $Clients belegt ist. Das anpingen funktioniert richtig. Nur frage ich mich wo kommt die IP des anzupingenden Rechners her? Auf dem Openbook habe ich mich ein wenig eingelesen dort konnte ich aber nicht herausfinden was $i ist und wie diese Variable belegt wird.

Auch verstehe ich nicht wozu die for schleife dort ist. Ginge es nicht auch nur mit if?

schmidti411

Avatar von schmidti411

Anmeldungsdatum:
24. Oktober 2007

Beiträge: 152

Wohnort: Berlin

Hallo,

die Funktion logit schreibt in das Systemlog. Sie ruft logger auf. Da das Skript ja als Cronjob läuft müssen die Ausgaben ja woanders ausgegeben werden - ein Bildschirm steht ja nicht zur Verfügung.

Gebe mal "man logger" ein - da erfährst du mehr.

Die Variable $i wird durch die for-Schleife mit allen übergebenen Argumenten der Funktion online aufgerufen.

Wenn du also

online nase wurst blupp

aufrufst, nimmt $i in der Schleife die nacheinander die Werte nase wurst blupp an.

Hoffe es wurde alles geklärt...

Gruß, SChmidti

Commerzgandalf

(Themenstarter)

Anmeldungsdatum:
23. Juni 2013

Beiträge: 66

Cool Danke, jetzt verstehe ich das ganze.

$* bezieht sich also auf alle Werte die sich hinter $CLIENTS verbergen. Für jeden wert wird die for Schleife einmal durchlaufen und $i nimmt bei jedem durchlauf der Schleife eine andere IP aus der Variable $CLIENTS.

So richtig?

Eine frage hätte ich da noch. Da meine Syslog immer ziemlich vollgemüllt ist. Und für eine Sekunde beim Starten bis zu 1000Einträge erstellt werden würde ich logger gerne in eine andere Datei schreiben lassen.

man logger sagt das ich option -f benutzen soll.

logger -f /var/log/autoshutdown.log -p local0.notice -s – AutoShutdown: Hallo

schreibt seine ausgabe aber in die syslog. Warum?

Antworten |