This commit is contained in:
Philippe Torrel
2026-10-01 10:37:23 +02:00
parent 58bdd6018f
commit 02b3745b88
8 changed files with 197 additions and 9 deletions
+55
View File
@@ -1,3 +1,58 @@
import os from 'node:os';
console.log(os.platform());
console.log(os.cpus().length);
console.log(`I am running on a machine with ${os.platform()} and ${os.cpus().length} cores.`);
console.log(`I am running on a machine with ${os.type()} and ${os.cpus().length} cores.`);
console.log(`I am running on a machine with ${os.version()} and ${os.cpus().length} cores.`);
// Weitere Informationen zum Betriebssystem
console.log('\n--- Betriebssystem ---');
console.log('Systemtyp:', os.type());
console.log('Systemversion:', os.release());
console.log('Architektur von Node.js:', os.arch());
console.log('Computername:', os.hostname());
// os.cpus() liefert Informationen zu den logischen CPU-Kernen.
const cpus = os.cpus();
console.log('\n--- Prozessor ---');
console.log('Logische CPU-Kerne:', cpus.length);
console.log('CPU-Modell:', cpus[0]?.model ?? 'Unbekannt');
// Die Speicherangaben kommen in Bytes. 1024 ** 3 Bytes entsprechen einem GiB.
const totalMemory = os.totalmem();
const freeMemory = os.freemem();
const usedMemory = totalMemory - freeMemory;
function formatMemory(bytes) {
return `${(bytes / 1024 ** 3).toFixed(2)} GiB`;
}
console.log('\n--- Arbeitsspeicher ---');
console.log('Gesamt:', formatMemory(totalMemory));
console.log('Frei:', formatMemory(freeMemory));
console.log('Belegt:', formatMemory(usedMemory));
// os.uptime() gibt die Laufzeit des Betriebssystems in Sekunden zurück.
const uptime = os.uptime();
const hours = Math.floor(uptime / 3600);
const minutes = Math.floor((uptime % 3600) / 60);
console.log(`\nSystemlaufzeit: ${hours} Stunden und ${minutes} Minuten`);
console.log('\n--- Benutzer und Verzeichnisse ---');
console.log('Benutzername:', os.userInfo().username);
console.log('Home-Verzeichnis:', os.homedir());
console.log('Temporäres Verzeichnis:', os.tmpdir());
// Jede Netzwerkschnittstelle kann mehrere IPv4- und IPv6-Adressen haben.
console.log('\n--- Netzwerkschnittstellen ---');
for (const [name, addresses] of Object.entries(os.networkInterfaces())) {
for (const address of addresses ?? []) {
console.log(`${name}: ${address.address} (${address.family}${address.internal ? ', intern' : ''})`);
}
}
// Übung 32: Information zum Betriebssystem und der Anzahl der vorhandenen CPUs
// Im Kontext einer Monitoring-Lösung benötigt ein Kunde eine kleine CLI (Command Line Interface)-Anwendung, die es erlaubt, das aktuelle Betriebssystem und die Anzahl der CPUs auf dem jeweiligen Rechner zu ermitteln.