# M122 - Aufgabe
2024-04 MUH
## System-Leistung abfragen
Für eine automatische Systemüberwachung von Servern
und/oder auch Clients sollen Sie "regelmässig" (cron)
eine Serie von Leistungs-Daten ausgeben.
### Aufgabenstellung
Verwenden dafür Bash- Shell-Scripting oder auch PowerShell
und stellen Sie sicher, dass es auf Ihrem System
ausgeführt werden kann.
**1.) Formattierte Inhalte**
Formattieren Sie alles in eine gut leserliche **Tabellen-Form**.
Folgendes ist auszugeben:
- 1. Die aktuelle Systemlaufzeit und aktuelle Systemzeit
- 2. Die Grösse des belegten und freien Speichers auf dem Dateisystem
- 3. Der Hostname imd IP-adresse des Systems
- 5. Die Betriebssystemname und -version
- 6. Der Modellname der CPU und die Anzahl der CPU-Cores
- 7. Der gesamte und der genutze Arbeitsspeicher
- Trenner und Abschluss der Tabelle für die nächste Ausgabe
**2.) Dateiausgabe wahlweise** (mit einem "switch" `-f`)
Gefordert ist die Ausgabe **wahlweise** direkt auf das
Terminal, bzw. die Console, wie auch in eine Datei.
- Wenn man **keine Option** angibt: Nur die Terminal-Ausgabe ohne Datei.
- Wenn man den **"Switch"** (die Option) `-f` angibt, soll zusätzlich die
Datei **[YYYY-MM]-sys-[hostname].log** erzeugt werden.
(Immer in die gleiche Datei schreiben. Das nennt man ein **"Log"**)
Tipp: Benutzen Sie für den Timestamp `date '+%Y-%m-%d'` bzw. `date '+%Y-%m'`
und für den Hostnamen `hostname` oder `uname -n` und den Befehl `df ` für Disk-Angaben.
**3.) Regelmässigkeit**
Binden Sie Ihr Skript in die `crontab` ein
und wählen Sie einen geeigneten Ausführungs-Takt.
Tipp: Prüfen Sie, ob Ihr **cron** eingeschaltenist mit folgendem Befehl:
service cron status
Falls cron nicht läuft, können Sie es damit einschalten:
sudo service cron start
### Resultat
Ihr Resultat könnte so in dieser Art aussehen (schöner ist besser):
| Text | Wert |
|------|------|
| free disk space | 80 GB |
| free memory | 07 GB |
| ... | ... |
| ... | ... |
| ... | ... |
Tipp: Benutzen Sie den [`printf`-Befehl](https://openbook.rheinwerk-verlag.de/shell_programmierung/shell_007_001.htm#RxxKap00700104004E721F034268)