zfs und zpool: Ausgabe parsen
Letzte Änderung am 20.07.2014
Mit Hilfe der Option -H bei zfs und zpool lässt sich die Ausgabe leicht mit regulären Ausdrücken verarbeiten.
Mit der Option -H wird der Scriptmodus bei den Befehlen
zpool list [-H] [-o props[,...]] [pool] ... zfs get [-r|-d depth] -H [-p] [-o field[,...] [-s source[,...] "all" | property[,...] filesystem|volume|snapshot ... zfs list [-r|-d depth] -H [-o property[,...]] [-t type[,...]] [-s property] ... [-S property] ... [filesystem|volume|snapshot] ... zfs userspace -H [-nip] [-o field[,...]] [-sS field]... [-t type [,...]] filesystem | snapshot
aktivieren. Damit werden keine Kopfzeilen ausgegeben und Spalten durch Tab getrennt.
Ein paar Zeilen PHP-Code verdeutlichen das Parsen:
<?php
# Get all properties, use scripting mode
# Output will be saved in the array $out
exec('zfs get -H all zroot/usr', $out);
# Loop over all lines of the output
foreach ($out as $row) {
// split the line, use tab as delimiter
$p = preg_split("/\t/", $row);
// print the current property and the associated value
printf("%s => %s\n", $p[1], $p[2]);
}
?>