{"id":299,"date":"2014-06-18T22:00:29","date_gmt":"2014-06-18T20:00:29","guid":{"rendered":"http:\/\/www.anginf.de\/?p=299"},"modified":"2014-07-10T17:14:16","modified_gmt":"2014-07-10T15:14:16","slug":"lokales-suchen-auf-einem-linux-system-und-bereitstellen-der-ergebnisse","status":"publish","type":"post","link":"https:\/\/www.anginf.de\/?p=299","title":{"rendered":"Lokales Suchen auf einem Linux-System und Bereitstellen der Ergebnisse"},"content":{"rendered":"<p>Auf einem Samba-Laufwerk, welches auf einem Linux-Rechner liegt und f\u00fcr die Windows-Computer freigegeben wurde, liegen sehr viele Dateien vor. Statt aus dem Windows Explorer heraus zu suchen (was aufgrund des Netzwerks und des Samba-Dienstes selbst ziemlich langsam ist), wird durch das Erstellen eines Ordners eine Suche definiert.<\/p>\n<p>Hierzu wird ein neuer Ordner &#8222;_search&#8220; verwendet. Alle unter diesem Ordner erstellten Unterordner lassen das Linux-System automatisch lokal eine Suche nach dem Namen des Ordners ausf\u00fchren. Die gefundenen Dateien werden per Softlink im Verzeichnis bereitgestellt. F\u00fcr Windows erscheint es dann so, als ob die Dateien direkt unterhalb des Unterordners liegen.<\/p>\n<p>Am besten in \/etc\/rc.local das Skript aufrufen, oder direkt einen neuen Dienst erstellen.<\/p>\n<p><code>inotify.sh<\/code><\/p>\n<pre lang=\"bash\">#!\/bin\/bash\r\n# This example uses \".jpg\" files\r\nSEARCHPATH=\"\/var\/smb\/\"\r\nmkdir -p ${SEARCHPATH}\/_search\r\ninotifywait -mq -e moved_to -e create --format %f ${SEARCHPATH}\/_search | while read FILE\r\ndo\r\n\t# Nur auf Verzeichnisse reagieren, nicht auf Dateien\r\n\tif [ -d \"${SEARCHPATH}\/_search\/${FILE}\" ]\r\n\tthen\r\n\t\tif [ `expr \"${FILE}\" : \".*Neuer Ordner\"` -ne 0 ] # Auch Abwandlungen hiervon\r\n\t\tthen\r\n\t\t\tcontinue\r\n\t\tfi\r\n\t\trm -f \"${SEARCHPATH}\/_search\/${FILE}\/\"* # Falls umbenannt wurde\r\n\t\trm -f \"${SEARCHPATH}\/_search\/${FILE}\/.ready\"\r\n\t\tSEARCH=`echo \"${FILE}\" | sed s\/\\ \/*\/g`\r\n\t\tfind ${SEARCHPATH}\/ -wholename '${SEARCHPATH}\/_search' -prune -o -type f -iname \"*${SEARCH}*.jpg\" -printf \"ln --backup=t --suffix=\\\".bak\\\" -s \\\"%p\\\" \\\"${SEARCHPATH}\/_search\/${FILE}\/\\\"\\n\" | sh\r\n\t\tcd \"${SEARCHPATH}\/_search\/${FILE}\"\r\n\t\t# Duplicates have wrong extensions. TODO: Do this for any filename?\r\n\t\tfor bkp in \"${SEARCHPATH}\/_search\/${FILE}\/\"*.~*; do mv \"${bkp}\" \"${bkp\/%\\~\/.jpg}\"; done >;\/dev\/null 2>&1\r\n\t\t# Mark for Windows user when we've finished. (Only necessary if local system is really slow or data is huge)\r\n\t\ttouch \"${SEARCHPATH}\/_search\/${FILE}\/.ready\"\r\n\tfi\r\ndone\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Auf einem Samba-Laufwerk, welches auf einem Linux-Rechner liegt und f\u00fcr die Windows-Computer freigegeben wurde, liegen sehr viele Dateien vor. Statt aus dem Windows Explorer heraus zu suchen (was aufgrund des Netzwerks und des Samba-Dienstes selbst ziemlich langsam ist), wird durch das Erstellen eines Ordners eine Suche definiert. Hierzu wird ein neuer Ordner &#8222;_search&#8220; verwendet. Alle &hellip; <a href=\"https:\/\/www.anginf.de\/?p=299\" class=\"more-link\"><span class=\"screen-reader-text\">Lokales Suchen auf einem Linux-System und Bereitstellen der Ergebnisse<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-299","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/posts\/299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.anginf.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=299"}],"version-history":[{"count":3,"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/posts\/299\/revisions"}],"predecessor-version":[{"id":303,"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/posts\/299\/revisions\/303"}],"wp:attachment":[{"href":"https:\/\/www.anginf.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=299"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.anginf.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=299"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.anginf.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}