• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] df -h als html ausgabe

onkelSuSE

Member
hallo,

möchte per script ein df -h ausführen und in meine html mail einbauen.

kann man die df-Ausgabe als html-Tabelle formatieren?

vielen dank
 

regexer

Advanced Hacker
onkelSuSE schrieb:
kann man die df-Ausgabe als html-Tabelle formatieren?
Ich weiß jetzt nicht, ob es hierfür bereits ein schlaues Tool gibt. Ansonsten gilt: Mit einer Scriptsprache deiner Wahl (z.B. perl, python, ...) ein entsprechend schlaues script scheiben. Es geht sicherlich auch mit der bash. Was ist dir lieber?

Hier ein ungetesteter Schnellschuss in perl (Ich hoffe du verwendest keine Mountpoints mit spaces):
Code:
#!/usr/bin/perl
use strict;
open (DF, "df -h|") or die "$!\n";
print "<table border=1>\n";
print "<th>th-Inhalt hier einfuegen</th>\n";
while (<DF>) {
  next if $. == 1;
  s#\s+#</td><td>#g;
  print "<tr><td>$_</td></tr>\n";
}
print "</table>\n";
Eventuell noch vor dem df den absoluten Pfad setzen ...
 
OP
O

onkelSuSE

Member
supi, genau das was ich gesucht hab!

klappt super! viell. kannst du mir noch kurz erklären, was \s+ macht??

nur, das ichs nich einfach blind benutz ohne zu wissen was es is! schätze mal blanks ersetzen, aber was es bedeutet weiss ich nich? ;-)
 

regexer

Advanced Hacker
onkelSuSE schrieb:
viell. kannst du mir noch kurz erklären, was \s+ macht??
\s bedeutet: Ein Whitespace-Zeichen (Space oder Tab)
\s* bedeutet: Null bis beliebig viele Whitespace-Zeichen (also 0-n)
\s+ bedeutet: Eines bis beliebig viele Whitespace-Zeichen (also 1-n)

Der komplette Ausdruck s#... ersetzt also 1-n Whitespace-Zeichen durch </td><td>. Das funktioniert nicht bei der Kopfzeile, da "mapped on" auch ein Leerzeichen enthält und daraus würden dann zwei Spalten gemacht. Deswegen auch mein Hinweis, dass hoffentlich die Mountpoints keine Leerzeichen enthalten...

Alles klar?
 
Oben