Kein LSOF bei FreeBSD mit ZFS.... Alternative?

  • Ersteller Ersteller fgordon
  • Erstellt am Erstellt am
F

fgordon

Gast
Damit unser Server runterfahren kann wenn eine Weile nix los ist würde ich gerne (neben anderen Dingen) wissen ob auf der Datenpartition Dateien geöffnet sind. "Früher" habe ich das mit lsof gemacht - nur das tut seit einer Weile mit ZFS nicht mehr in FreeBSD.

Gibt es da Alternativen? Also zu lsof ... nicht zu FreeBSD und ZFS :D
 
(Ups falsch gelesen ich teste das mal richtig xD

Hmm ja das Ergebnis schaut interessant aus - Dankeschön ..... dann kann ich ja wieder Strom sparen xD
 
Zuletzt bearbeitet von einem Moderator:
procstat
ist der relevante part -
Habe eben auch procstat -fa kennen gelernt. Mach mal :)
 
fgordon schrieb:
"Früher" habe ich das mit lsof gemacht
Man muss dazu sagen, lsof ist generell etwas wackelig auf FreeBSD.
Du könntest alternativ fstat nehmen. Das ist auch mit dabei und Du musst dafür kein Package/Port installieren.
 
  • Gefällt mir
Reaktionen: madmax2010
Hab kein freebsd am Start und generell keine Ahnung was Dein Server da servt, aber vllt. kann man die erwünschte Info auch Dienst-bezogen erhalten?
Unter Linux mit Samba kann man etwa mit smbstatus auslesen, ob Dateien per smb/cifs geöffnet sind.
 
hmmm ich habe auch Sachen wie rsync drauf laufen und auch nfs shares. aber denke das mit obigem procstat von madmax passt soweit ich das sehe

Code:
ps ax -o pid=|xargs procstat -f 2>/dev/null | grep -v "grep" | grep -v "syncthing" | grep "tank" | grep "v r r"

das findet sowohl Dateien die offen zum lesen sind als auch zum schreiben.

Hihi jo lsof war immer ein wenig wackelig aber doch ganz ok - Rechner ausschalten, wenn eine Weile nix los ist ja auch nichts so kritisches, meist macht man das eh von Hand.
 
Der Umweg via PS ist nicht notwendig. -a an procstat tut das selbe. Ich war dumm und habe einfach aus dem thread kopiert ohne zu denken (:
 
  • Gefällt mir
Reaktionen: fgordon
procstat unterstützt übrigens auch libxo. Damit kannst Du dann formatierte Ausgaben machen die sich dann auch besser parsen lassen.
Dann kannst Du dann sowas schreiben wie
procstat --libxo json,pretty -fa
und kriegst ein schönes JSON zurück.

fgordon schrieb:
Code:
ps ax -o pid=|xargs procstat -f 2>/dev/null | grep -v "grep" | grep -v "syncthing" | grep "tank" | grep "v r r"
Es ist immer etwas kritisch einfach ne plaintext-Ausgabe zu nehmen und dann über die ganze Zeile zu "greppen" weil man halt nie weiß, was man da erwischt (oder besser gesagt: aus welcher Spalte).
 
  • Gefällt mir
Reaktionen: Arc Angeling, madmax2010 und fgordon
Sweet kannte ich auch noch - dass dann noch durch fx pipen und es wird navigierbar und richtig cool :)
 
  • Gefällt mir
Reaktionen: guzzisti
madmax2010 schrieb:
Das wirklich "sweete" daran ist das es halt eine allgemeine Funktionalität ist die auch in anderen Programmen verfügbar ist (und man natürlich auch selbst benutzen kann).
Wenn man also Programmausgaben braucht (und nicht nur ansehen will) sollte man mal gucken, obs die Option --libxo gibt.

madmax2010 schrieb:
dann noch durch fx pipen
fx kannte ich noch nicht. :-)
Aber ja klar. Wenn man dann erst mal ein parsable-Output in einem Standardformat wie JSON, XML or whatever hat kann man es natürlich auch gleich in anderen Programmen weiterverarbeiten.
 
  • Gefällt mir
Reaktionen: madmax2010
andy_m4 schrieb:
Es ist immer etwas kritisch einfach ne plaintext-Ausgabe zu nehmen und dann über die ganze Zeile zu "greppen" weil man halt nie weiß, was man da erwischt (oder besser gesagt: aus welcher Spalte).
In dem Fall ja nicht ganz so krtisich denke ich, weil ich ja nur $? auswerte - also ob überhaupt was gefunden wurde oder nicht und mir der Inhalt eigentlich egal ist.

Aber trotzdem gut zu wissen - wer weiss wann man das mal brauchen kann :)

Hehe ich bin ja schonmal froh, dass das überhaupt was wieder geht :D
 
Ich sach nochmal Danke an alle, denn das war was, das ich schon lange wieder ans Laufen bringen wollte - und nun tut's endlich wieder :daumen:
 
Edit: Sorry, hatte nicht alles genau gelesen und übersehen, dass der Hinweis schon erwähnt wurde…
 
Zurück
Oben