Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Gibt es eine FreeBSD-eigene Möglichkeit, die Änderungen von Dateien zu überwachen? Also speziell für die Verwendungen in Shell-Skripten und so?
Also ich weiß, das es da z.B. kqueue gibt (und auf der dortigen Manpage ist auch ein Beispielprogramm, welches funktioniert und das man mit geringen Anpassungen nehmen kann). Also quasi sowas wie fswatch-mon (fswatch-Manpage).
Aber gibts auch im Base-System ein Tool, welches man direkt nutzen kann?
Ja. Das ist ein gangbarer Weg.. Mir gehts auch primär nicht darum irgendeine Lösung zu haben (da führen viele Wege hin), sondern (auch um des lernens willen) zu wissen, ob es da ein Standard-Tool unter FreeBSD gibt, welches event-basiert (kqueue und Co.) eine solche Abfrage ermöglicht. Vielleicht gibts da auch nichts, aber falls ja, würde ich diese Wissenslücke gerne schließen.
Aber trotzdem danke für Deine Anregung.
Und wo wir gerade schon dabei sind und lernen und so:
Welches wäre denn das schnellste Prüfsummenprogramm? Also md5 dürfte vermutlich ziemlich flott sein. Aber gibts schnellere Varianten (maybe cksum - also CRC - dürfte recht schnell sein ; ist natürlich nicht so genau/zuverlässig wie z.B. md5, aber für manche Szenarios reicht das ja)?
Ich habe nichts weiter gefunden. So wie ich es sehe, könnte man eventuell auch dtrace entsprechend vergewaltigen.
Siehe rwsnoop auf https://www.brendangregg.com/dtrace.html#OneLiners, das müsste man eben noch um einen spezifischen Dateinamen ergänzen.
Ja. :-)
Guter Gedanke. Die Idee hatte ich tatsächlich auch schon, weil ich dtrace sehr gerne beispielsweise dafür verwende um zu gucken, welcher Prozess welche Datei anfasst (dwatch -X open , siehe: dwatch(1)).
Das kann man jetzt noch ein bisschen runterfiltern, in dem man nur die open-Arufe filtert, wo Dateien fürs schreiben geöffnet werden. Laut der Manpage zu open gibts dafür z.B. das Flag O_WRONLY. Das entspricht laut fcntl.h dem Zahlenwert 1.
Man könnte ein entsprechendes Testbedingungen definieren. Allerdings matcht das open-Profil von dwatch auf open und openat und die werden geringfügig anders aufgerufen. Außerdem ist die Ausgabe von dwatch relativ verbose. Für den Zweck zuviel. Der Pfad/Dateiname reicht ja eigentlich.
Man kann dann noch ein | grep /meine/datei hinten ranhängen, um nach einer spezifischen Datei zu gucken. Vermutlich kann man das auch irgendwie die if-"Abfrage" packen, aber irgendwie ist das mit den Strings und vergleichen in dtrace immer etwas tricky. Kurzum: Ich hab das auf Schlag nicht parat. Sowas wie copyinstr(arg0)=="/meine/datei" funktioniert jedenfalls nicht so einfach und ein strcmp gibts unter dtrace nicht. Aber vielleicht hat ja jemand einen Hinweis dazu parat.
Problem dabei: öffnen heißt natürlich nicht, das die Datei dann schon fertig geschrieben ist. Steng genommen müsste man eigentlich noch den File-Descriptor merken und ein entsprechendes close abwarten.
In der Praxis reicht es vermutlich aber, wenn man einfach nur zur Sicherheit ne Sekunde abwartet, bevor man was mit der Datei macht.
Diese Timing-Probleme hat man übrigens auch potentiell bei der Prüfsummenabfrage.
Die Idee ist ganz nett. Also das mit der -i Option. Wo man dann bei der Angabe mehrerer Dateien, via Exit-Code mitgeteilt wird, welche Datei von der Änderung betroffen ist.
Und auch sonst werden Exit-Codes geschickt genutzt, was es ganz angenehm fürs Skripting macht.
Insofern ist es nicht ganz das, was ich suche aber dennoch ein guter Tipp.
AIDE is Advanced Intrusion Detection Environment, a file and directory integrity checker. It creates a database from the regular expression rules that it finds from the config file(s). Once this database is initialized it can be used to verify the integrity of the files. It has several message...
Ja. Aber das ist eigentlich nicht mein Anliegen. Also quasi alle Dateien zu überwachen.
Es geht mir eher um: Datei via Skript im Blick zu behalten und instant eine Aktion starten, wenn die sich ändern
btw.: Gibts übrigens eine ähnliche (kleinere) Lösung auch in Base-System. Nämlich mtree(8)
Zum snapshotten: mtree -c -p /path/to/watchdir > /path/to/mtree.log
Und später zum auf-Veränderung-prüfen: mtree -p /path/to/watchdir -f /path/to/mtree.log
Aide überwacht NICHT ALLE dateien, sondern jene, welche du in der Konfig vorgibst. Danach kannst du Aide per Script laufen lassen und dessen Ausgabe auswerten. Aide zeigt dir welche Datei genädert hat und somit kannst du eine Aktion ausführen.