PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : False oder True sichtbar ?



Sachse
15-09-2003, 18:51
Hi ich bin gerade am bastel für eine automatische abschaltung meines Server.
Die eine Bedingung , habe ich schon fertig bekommen.
Es soll kein User angemeldet sein.

#!/bin/sh
users >user
echo "erstelle neue user-Datei"
anzahl=$(wc -w user | sed s/user//)
echo "erstelle anzahl"
if [ $anzahl -gt 0 ]; then server=$(true)
echo "anzahl der User $anzahl"
exit 0
fi

Die zweite ist , das der Client (windose) nicht online sein darf. Könnte ja sein der Sohn saugt wierder mal ;)

Nun meine Frage
Wenn ich den $rechner ein Warheitsgehalt mit gebe (true oder false)
ist das mit echo sichtbar ? Das selbe gilt natürlich für $server im ersten Teil.
Oder funzt das so nicht.


#!/bin/sh
client1=$(ping -c 1 192.168.11.1 | grep from | cut -d : -f 1 | cut -b1-2)
echo $client1
if [ $client1 <> 64 ] ;then rechner=$(false)
echo $rechner
exit 0
fi


Die beiden Teile , also $rechner und $server wollte ich dann noch vergleichen und daraus das halt starten.

micha
16-09-2003, 22:06
Hi Sachse,


Original geschrieben von Sachse
Nun meine Frage
Wenn ich den $rechner ein Warheitsgehalt mit gebe (true oder false)
ist das mit echo sichtbar ? Das selbe gilt natürlich für $server im ersten Teil.
Oder funzt das so nicht.


Nein, das echo ist nicht sichtbar. Ist es nötig, dass es insgesamt 3 Skripte sind oder kannst Du das auch in eines packen ? Dann könntest Du es z.B. so versuchen:



#!/bin/bash

function user () {
users > user
echo "erstelle neue user-Datei"
anzahl=$(wc -w user | sed s/user//)
if [ $anzahl -gt 0 ]; then
echo true;
else
echo false;
fi
}

function host () {
client1=$(ping -c 1 192.168.11.1 | grep from | cut -d : -f 1 | cut -b1-2)
if [ $client1 <> 64 ] ; then
echo false;
else
echo true;
fi
}

if ! $(user) && ! $(host); then
halt
fi

exit 0


Weitere Möglichkeit:



#!/bin/bash
#
# Ausgabe von users in einem Array speichern
#
users=( $(users) )
host=$(ping -c 1 -w 5 192.168.11.1 2>&1 > /dev/null)

#
# Wenn der Rückgabewert von ping != 0 ist und das Array
# keine Elemente besitzt, Rechner runterfahren
#
if [ $? -ne 0 -a ${#users } -eq 0 ]; then
/sbin/halt
fi

exit 0;


Gruß micha

Sachse
17-09-2003, 15:42
Danke Micha,

Vielen dank für deine Tipps. Wie ich sehe führen viele Wege nach Rom.
Das sind meine ersten Gehversuche mit Script.
Wenn man da einmal Blut geleckt hat kommt man nicht mehr los.
:)

Werd ich heute noch testen.