{"id":24668,"date":"2026-08-09T10:03:51","date_gmt":"2026-08-09T08:03:51","guid":{"rendered":"https:\/\/linux-bibel.at\/?p=24668"},"modified":"2026-08-09T10:03:53","modified_gmt":"2026-08-09T08:03:53","slug":"ueberwachung-des-dateisystems-mit-entr-unter-linux","status":"publish","type":"post","link":"https:\/\/linux-bibel.at\/index.php\/2026\/08\/09\/ueberwachung-des-dateisystems-mit-entr-unter-linux\/","title":{"rendered":"\u00dcberwachung des Dateisystems mit Entr unter Linux"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Was passiert, wenn unbedarfte Linux-User mit root-Rechten am Dateisystem werkeln &#8211; meist funktioniert etwas nicht mehr, wie es soll. Solche Dinge lassen sich aber protokollieren, welche Datei wurde ver\u00e4ndert, wo wurde etwas erstellt &#8211; mit <em>Entr<\/em> lassen sich aber auch andere Dinge verwirklichen, etwa automatische Backups, die starten, wenn in einem bestimmten Verzeichnis neue Dateien landen. Klar, f\u00fcr Backups gibt es genug andere Software &#8211; meist handelt es sich aber auch um fette Brocken von Software. Die Grenzen der M\u00f6glichkeiten von <em>Entr<\/em> setzt aber nur die eigene Phantasie.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Entr installieren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Unter auf Debian basierenden Linux-Distributionen (<em>Debian, Ubuntu, Linux Munt und so weiter<\/em>) installieren Sie diese Software wie \u00fcblich ganz einfach \u00fcber die Paket-Verwaltung, etwa grafisch \u00fcber <a href=\"https:\/\/linux-bibel.at\/index.php\/2023\/10\/29\/synaptic-die-ultimative-paket-verwaltung-von-debian\/\" data-type=\"post\" data-id=\"10661\">Synaptic<\/a> oder als root auf der Shell mit den Befehlen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update\napt install entr<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Entr nutzen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Entr<\/em> wird auf der Shell genutzt, je nachdem, ob man damit das System \u00fcberwachen will oder das eigene Home-Verzeichnis also mit root-Rechten oder mit Benutzer-Rechten. Um die Geschichte zu automatisieren, gibt es keine Konfigurationsdatei, es wird der Befehl etwa automatisch als Script gestartet, etwa als Cron-Job oder eben \u00fcber Systemd &#8211; hiermit werden wir uns in diesem Beitrag nicht befassen, dazu gibt es bereits passende Artikel auf der Linux Bibel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zuerst gilt es zu verstehen, wie <em>Entr<\/em> funktioniert &#8211; <em>Entr<\/em> ist ein sogenannter <em>Event Notify Runner<\/em>, dies bedeutet &#8211; sie tut so lange nichts, bis sich etwas an den vorgegebenen Datei oder Verzeichnissen \u00e4ndert. Passiert jedoch eine \u00c4nderung, f\u00fchrt sie den zugewiesenen Befehl aus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sehen wir uns ein einfaches Beispiel an. Ich erstelle ein Script namens &#8222;<strong>echo.sh<\/strong>&#8222;, mache dieses ausf\u00fchrbar und f\u00fclle es mit folgendem Inhalt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\necho \"Hallo Linux Bibel\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Also auf der Shell:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod +x echo.sh\n.\/echo.sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das Script gibt folgenden Inhalt aus:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr.jpg\" rel=\"lightbox-0\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"275\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr.jpg\" alt=\"\" class=\"wp-image-24669\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr.jpg 600w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-150x69.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-300x138.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Bis jetzt hat <em>Entr<\/em> noch nicht mitgespielt &#8211; jetzt \u00fcbergeben wir das Script <em>Entr<\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo echo.sh | entr \/usr\/bin\/bash .\/echo.sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das <code>echo echo.sh<\/code> dient dazu, dass die Ausgabe am Terminal weiter zu sehen ist. Nach der Pipe <code>|<\/code> weisen wir <em>Entr<\/em> an, den Befehl <code>\/usr\/bin\/bash echo.sh<\/code> auszuf\u00fchren, sobald sich etwas an der Datei \u00e4ndert, erst einmal mit der unver\u00e4nderten Datei:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-1.jpg\" rel=\"lightbox-1\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"275\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-1.jpg\" alt=\"\" class=\"wp-image-24670\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-1.jpg 600w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-1-150x69.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-1-300x138.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt ver\u00e4ndern wir mit einer Textdatei den Inhalt des Scripts, etwa auf:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\necho \"Hallo Linux Bibel \u00d6sterreich\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wird die \u00c4nderung gespeichert, f\u00fchrt <em>Entr<\/em> sofort den Befehl aus und zeigt die \u00c4nderung an:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-2.jpg\" rel=\"lightbox-2\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"275\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-2.jpg\" alt=\"\" class=\"wp-image-24671\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-2.jpg 600w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-2-150x69.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-2-300x138.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wichtig ist zu verstehen, <em>Entr<\/em> \u00fcberwacht die entsprechenden Dateien oder Verzeichnisse nur und tut einmal gar nichts, Sie m\u00fcssen der Software auch zeigen, was sie damit tun soll.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt wollen wir dieses Verst\u00e4ndnis etwas vertiefen &#8211; wir erstellen eine Datei namens &#8222;<strong>Dateiname.txt<\/strong>&#8220; und lassen diese zu Beginn leer, jetzt lassen wir <em>Entr<\/em> drauf los:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls Dateiname.txt | entr wc \/_<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-3.jpg\" rel=\"lightbox-3\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"275\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-3.jpg\" alt=\"\" class=\"wp-image-24673\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-3.jpg 600w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-3-150x69.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-3-300x138.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Mit dem Befehl <code>ls Dateiname.txt<\/code> wird der Inhalt der Datei &#8222;<strong>Dateiname.txt<\/strong>&#8220; ausgelesen und angezeigt, mit <code>wc<\/code> wird die Anzahl der darin enthaltenen W\u00f6rter und Zeichen angezeigt. Wichtig ist hierbei die Option <code>\/_<\/code> am Ende. Es ist der Platzhalter, den <em>Entr<\/em> nutzt &#8211; wir sehen in K\u00fcrze, was dies f\u00fcr eine nette Auswirkung hat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Da die Datei bisher leer ist, ist die Ausgabe leer. F\u00fcgen wir etwas Text ein, zeigt uns die Ausgabe von <code>wc<\/code> die Anzahl der W\u00f6rter und Zeichen, dahinter folgt der Pfad zur ver\u00e4nderten Datei und der Dateiname:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-4.jpg\" rel=\"lightbox-4\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"275\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-4.jpg\" alt=\"\" class=\"wp-image-24674\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-4.jpg 600w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-4-150x69.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-4-300x138.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt will ich beispielsweise alle Textdateien im Verzeichnis \u00fcberwachen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls *.txt | entr wc \/_<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Schon haben wir eine entsprechende Ausgabe:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-5.jpg\" rel=\"lightbox-5\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"275\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-5.jpg\" alt=\"\" class=\"wp-image-24675\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-5.jpg 600w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-5-150x69.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2026\/08\/entr-5-300x138.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die \u00c4nderungen lassen ich nat\u00fcrlich etwa in eine entsprechende Datei protokollieren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls *.txt | entr wc \/_ >> Protokoll.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt wollen wir etwas weiter gehen, etwa eine automatische Sicherung von Bildern aus dem Verzeichnis &#8222;<em>\/home\/robertg\/Bilder<\/em>&#8220; auf einen gemounteten USB-Stick unter &#8222;<em>\/mnt\/USB-Stick\/Bilder<\/em>&#8222;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/home\/robertg\/Bilder\/ -name '*.jpg' | entr cp \/_ \/mnt\/USB-Stick\/Bilder\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das Beste an <em>Entr<\/em> &#8211; die Software selbst braucht zur \u00dcberwachung so gut wie keine Ressourcen &#8211; anders als viele andere Software, wendet es sich direkt ans Dateisystem, dass diese Aufgabe sowieso \u00fcbernimmt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Was passiert, wenn unbedarfte Linux-User mit root-Rechten am Dateisystem werkeln &#8211; meist funktioniert etwas nicht mehr, wie es soll. Solche Dinge lassen sich aber protokollieren, welche Datei wurde ver\u00e4ndert, wo wurde etwas erstellt &#8211; mit Entr lassen sich aber auch andere Dinge verwirklichen, etwa automatische Backups, die starten, wenn in einem bestimmten Verzeichnis neue Dateien [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":24675,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,101],"tags":[15,289],"class_list":["post-24668","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-system","category-tipps","tag-system","tag-tipps"],"_links":{"self":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/24668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/comments?post=24668"}],"version-history":[{"count":3,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/24668\/revisions"}],"predecessor-version":[{"id":24678,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/24668\/revisions\/24678"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media\/24675"}],"wp:attachment":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media?parent=24668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/categories?post=24668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/tags?post=24668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}