Gibt es also eine Möglichkeit im Script abzufragen, ob ein User eingeloggt ist?
Man könnte vielleicht mit "who" die eingeloggten Benutzer ausgeben lassen und dessen Ausgabe durch "wc -l" weiterleiten, um die Anzahl (der Zeilen) zu ermitteln. Also irgendwie sowas:
if (( $(who | wc -l) > 0 )); then
echo "Mindestens ein Nutzer ist eingeloggt"
else
echo "Es ist niemand eingeloggt"
fi
Das funktioniert wahrscheinlich nur mit der bash als Interpreter (wegen der doppelten runden Klammern zum Rechnen). Besonders elegant ist es auch nicht, vielleicht könnte man die gesuchte Information auch irgendwo im /proc/ Filesystem finden...
Ausserdem will ich demnächst ein Script für ein Automatisches Backup schreiben. Während dieser Zeit soll der Server natürlich auch nicht ausschalten. Wie kann ich in meinem Ausschaltscript abfragen, ob mein Backupscript gerade aktiv ist?
Z.B. mit "ps -A" alle Prozesse auflisten lassen und mit "grep" anhand einer Regexp diejenigen raussuchen, die einem gewissen Namensschema entsprechen:
ps -A | grep "backupscript\.sh"
Mit dem Schalter "-q" erzeugt grep keine Ausgaben mehr und meldet ob es Treffer gab nur noch anhand des Exitcodes. Diesen kann man dann wiederum in einer if-Abfrage verwenden:
if ps -A | grep -q "backupscript\.sh"; then
echo "Es gibt (mindestens) einen Prozess mit dem Namen 'backupscript.sh'"
else
echo "Es gibt keinen Prozess mit dem Namen 'backupscript.sh'"
fi
wie lassen sich die HDDs so einstellen, dass sie nach Programmierter Zeit bei keinen Zugriffen in den Stromsparmodus versetzt (ausgeschaltet) werden? Also In Windoof gabs iirc eine Funktion die die Platten nach gewisser Zeit abschaltete.
Da kann man irgendwas mit hdparm machen, keine Ahnung wie. Ansonsten gibt es bei Debian das Paket "laptop-mode-tools", da kann man in der Datei "/etc/laptop-mode/laptop-mode.conf" u.a. einstellen, wie lange die Festplatten an bleiben sollen - jeweils bei Akkubetrieb oder bei Anschluss ans Stromnetz.
Ich würde sowas aber nicht unbedingt bei einem Linux-Server aktivieren. Üblicherweise laufen bei einem Linux-System recht viele Prozesse, die auch mal hin und wieder auf die Festplatte zugreifen wollen. Z.B. der syslog-deamon. Also wird es relativ oft vorkommen, dass die Festplatte wieder anspringen muss. Im Zusammenhang mit den laptop-mode-tools gibt es aber Dokumentation, wo beschrieben wird, wie man solche Prozesse finden kann.
AFAIK ist bei Desktop- und insbesondere Serverplatten zu häufiges Ein- und Ausschalten auch garnicht gut für die Lebensdauer. Laptop-Platten sind für sowas wohl ehr ausgelegt.
Wie hattest du es eigentlich hinbekommen, dass das Ausschalt-Script automatisch und regelmäßig im Hintergrund gestartet wird? Hast du irgendwas in /etc/crontab eingetragen oder gibt des bei Ubuntu ein grafisches Frontend für Cronjobs?