Dateien im Ordner über Netzwerk zählen

Herbert80

Benutzer
Mitglied seit
01. Jan 2021
Beiträge
64
Punkte für Reaktionen
2
Punkte
8
Hallo,
ich habe eine DSM710+ und mehrere Personen nutzen die Photostation.

Jedes Smartphone (jede Person) sichert in seinem eigenen Ordner.

Bsp für Person Bart:
/photo/01 Bart/2021/Ausflug ins Grüne
/photo/01 Bart/9999 Bart Sicherung Smartphone

Die anderen Personen mit 02 Lisa usw...

Da einige Personen es etwas schleifen lassen die Dateien von Ordner "9999 Bart Sicherung Smartphone" in die richtigen Ordner einzusortieren, soll genau diese Dateimenge von einem externen Linux abgefragt werden. In meinem Fall ein Raspberry Pi mit Smart-home: ioBroker

Wie kann ich von einem anderen Linux die Abfrage zur Dateianzahl zum Ordner "/photo/01 Bart/9999 Bart Sicherung Smartphone" machen?

find /path/to/dir -type f | wc -l
müsste dann
find /photo/01 Bart/9999 Bart Sicherung Smartphone -type f | wc -l

Herausgefunden habe ich, dass dies dann über eine Kommandozeilen-Abfrage läuft: SSH/Telnet, dazu müsste ich (wahrscheinlich) in der Synology entweder SSH oder Telnet oder beiden einschalten. Nur weiß ich nicht wie das geht und hoffe auf eure Unterstützung.

Was habe ich sonst versucht:
Wenn ich /photos via NFS ins Netzwerk mit Leserechte share, vom Raspberry mounte, sehe ich die Dateien. Nur leider erscheint da ein zusätzlicher Ordner @eaDir mit etlichen Dateien drin.
Ergebnis:
1. funktioniert die Abfrage so nicht, da in meinem Dateinamen die Leerzeichnen scheinbar ein Problem darstellen
2. sind 13 Bilder in einem Testordner drin, es werden mit aber 72 Dateien wegen dem @eaDir angezeigt. Also führt meine Idee nicht zum Ziel und schätze, mit meiner Frage oben den richtigen Weg zu gehen. Nur wie, weiß ich nicht.
BTW: Wenn ich Terminal oder SSH aktiviere, möchte ich mir nicht irgendwelche Sicherheitslücken öffnen. Es kommt immer wieder mal vor, dass ich Bilder und Dateien übers WWW teile.

Besten Dank im Voraus
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.320
Punkte für Reaktionen
2.871
Punkte
423
Musst dir mal die Syntax des find-Kommandos anschauen. Die @eaDir-Verzeichnisse auf allen Ebenen musst du bei der Suche ausschließen, da die eh nur nur einige Vorschaubilder pro Bild beinhalten. Ich weiß aber im Moment auch nicht, welche Option da sinnvoll wäre.
 

Hagen2000

Benutzer
Mitglied seit
25. Mai 2016
Beiträge
107
Punkte für Reaktionen
25
Punkte
28
1. Den Pfad in Anführungszeichen stellen oder einen Backslash \ vor jedes Leerzeichen setzen sollte das Problem lösen.
2. Du könntest vor den | wc -l noch einen | grep-v @eaDir stellen um diese Pfade wieder auszufiltern.

Angeblich wird bei einem SMB-Mount das Verzeichnis @eaDir automatisch unterdrückt, das wäre eine weitere Alternative.
Über SSH würde ich hier eher nicht arbeiten.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
@Hagen2000 Weshalb würdest du hier nicht über SSH arbeiten? Was spricht dagegen?
Ist doch kein großer Aufwand 🤷‍♂️
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.054
Punkte für Reaktionen
902
Punkte
204
Grundsätzlich wird ja empfohlen, SSH zu deaktivieren, wenn man es nicht braucht, und den Port anzupassen. Für so eine „Nebenbei“-Aufgabe würde ich es dann wahrscheinlich auch nicht dauerhaft aktivieren, wenn es einen Workaround gibt.
 

Hagen2000

Benutzer
Mitglied seit
25. Mai 2016
Beiträge
107
Punkte für Reaktionen
25
Punkte
28
@luddi Aus ähnlichen Gründen wie mein Vorredner schreibt. Der Themenersteller hat es ja schon hinbekommen, per NFS zuzugreifen und das halte ich hier für einen guten Ansatz.
 
  • Like
Reaktionen: Herbert80

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.605
Punkte für Reaktionen
758
Punkte
154
Ich sehe das Problem nicht, wenn SSH dauerhaft aktiv ist. Also wieso sollte das unsicher sein? Es ist ja nicht von außerhalb erreichbar und es kann sich auch nicht jeder anmelden. Man muss schon die Zugangsdaten kennen bzw. den SSH Key haben.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Sehe ich auch so. Ich weiß nicht weshalb es gefährlich sein sollte wenn der SSH Dienst läuft. Vor allem wenn man es wie in diesem Beispiel sowieso nur im lokalen Netzwerk benötigt und den Port nach außen hin nicht öffnet besteht doch keine Gefahr.
Aber selbst wenn, halte ich das nicht für gefährlich selbst wenn der ssh Port von außerhalb erreichbar ist.
Manchmal lassen sich Systeme nur darüber aus der Ferne warten und ist auch durchaus gängige Praxis.
Viel schlimmer und gefährlicher halte ich dagegen andere Einfalltore wie eine bösartige email zu öffnen oder einen darin enthalten Link aufzurufen und wenn darüber auf gemountete SMB Freigaben der Zugriff gewährt ist.
Es gibt sicher immer Risiken, aber bei ssh sehe ich es eher als gering an.
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.054
Punkte für Reaktionen
902
Punkte
204
Ändert ja nix an der Tatsache, so wenig Zugriffsmöglichkeiten wie praktikabel offen zu haben als einfache Sicherheitsmaßnahme.
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.054
Punkte für Reaktionen
902
Punkte
204
Aber warum soll ich eine Funktion denn überhaupt aktiviert haben, wenn ich sie nicht nutze? Ich habe FTP/SFTP/FTPS auch deaktiviert, weil ich nur SMB nutze. Natürlich könnte ich das im internen Netzwerk auflassen, aber aus welchem Grund? Ich will da aber keinen bekehren, soll jeder so machen wie er meint.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.605
Punkte für Reaktionen
758
Punkte
154
Mir ging es nur darum, dass es hieß, dass man es nicht immer aktiv haben sollte, weil das dadurch sicherer ist. Und das stimmt einfach nicht finde ich. Wenn SSH nicht aktiv ist, dann könnte man sehr viele Server nicht mehr administrieren.
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.054
Punkte für Reaktionen
902
Punkte
204
Jede nicht aktivierte Zugriffsmöglichkeit macht das System aber rein physikalisch sicherer. In ein Haus ohne Fenster und Türen (vulgo: Bunker) kann ich ja auch nicht einbrechen.

Diskutabel ist, wieviel Sicherheit man real damit gewinnt. Und ob ein Server dann noch administriert werden kann, ist eine andere Fragestellung. Wenn ich SSH deaktiviert lasse und über DSM aktiviere, wenn ich es brauche, dann gibt es dauerhaft nur den Zugriff über DSM, das Törchen SSH öffne ich dann nur bei Gelegenheit.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.320
Punkte für Reaktionen
2.871
Punkte
423
Es gab hier aber schon genügend Fälle, wo der DSM nicht mehr erreichbar und SSH deaktiviert war, auch nach einem Reboot. Mit aktiviertem SSH hätte man wenigstens mal schauen können, was da los ist.
 

McFlyHH

Benutzer
Mitglied seit
02. Jan 2014
Beiträge
390
Punkte für Reaktionen
61
Punkte
28
Ich finde es eher "strange", dass man im privaten Bereich "überwacht", wer seine Fotos nicht "ordentlich sortiert" ... :oops:
Aber jeder, wie er mag
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.605
Punkte für Reaktionen
758
Punkte
154
Aber wo ist denn der Sicherheitsgewinn. Hat jemand deine Daten, dann kann er sich bei DSM anmelden. Egal ob SSH an ist oder nicht. Sind ja die selben Daten..... Ja bei DSM kannst du 2FA aktivieren, bei SSH kann man sich auch mit Keys anmelden, dann reicht das Passwort nicht mehr.
 

Herbert80

Benutzer
Mitglied seit
01. Jan 2021
Beiträge
64
Punkte für Reaktionen
2
Punkte
8
So an alle die sich so stark an meinem Thema hier beteiligen: Vielen Dank!!!

@McFlyHH Bei Google Fotos war es unbegrenzt. Also egal ob am Tag 100 oder 1 Bild unnötig auf Google Server liegen. Bei mir daheim ist das Ziel die Bilder die benötigt werden, sollen einsortiert werden, der Rest also Unsinn wird gelöscht. Also bei mir sind die HDDs in der Größe begrenzt... ;-)
PS: Es sprach der Ordnungsfanatiker :)

@luddi Obwohl die Abfrage über NFS (noch mit dem lästigen @eaDir) funktioniert, möchte ich aus Interesse trotzdem gerne wissen, wie ich von einem fremden Linux diese Abfrage machen kann:
Die IP Adresse lautet 192.168.1.8
Also SSH aktivieren und irgend eine Mischung aus IP Adresse und dem folgenden Befehl eingeben. Nur was und wie möchte ich gerne wissen.
Immerhin könnte ich auch einen Restart Befehl oder sonstiges dann auch auslösen ;-)

@Hagen2000
...Du könntest vor den | wc -l noch einen | grep-v @eaDir stellen um diese Pfade wieder auszufiltern.
Code:
find /photo/01 Bart/9999 Bart Sicherung Smartphone -type f | grep-v @eaDir | wc -l
oder so, gleiches Ergebnis:
Code:
find "/photo/01 Bart/9999 Bart Sicherung Smartphone" -type f | grep-v @eaDir | wc -l

Die Antwort im Terminal lautet:
Code:
find: paths must precede expression: `grep-v'
0
Irgendwie funktioniert das leider nicht, hab ich was falsch eingefügt?

Vielleicht habe ich mich auch nicht ganz korrekt ausgedrückt:
In jedem Ordner wird dann so ein @eaDir Ordner angelegt, dort sind die Thumb Dateien dann drin. Also es könnten mehrere Ordner @eaDir sein.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.605
Punkte für Reaktionen
758
Punkte
154
Du hast ein Leerzeichen vergessen.
Bash:
grep -v
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.320
Punkte für Reaktionen
2.871
Punkte
423
Grad mal hier probiert. Im Explorer unter /photo nach "*.jpg" gesucht, liefert 41143 Treffer. Der Explorer "sieht" die eaDir-Verzeichnisse ja nicht und ist nicht case-sensitiv. Also nehme ich mal an, dass das stimmt.

Auf der Konsole liefert mir
Code:
find /volume1/photo -name '*.jpg' -or -name '*.JPG' | grep -v @eaDir | wc -l
das selbe Ergebnis.

Alle Versuche, es ohne den grep-Befehl hinzubekommen (z.B. mit "-not -path '*@eaDir*') sind bisher gescheitert. Ich vermute, dass man die Bedingungen noch irgendwie klammern müsste.

Edit: So, hab meinen Sohn gefragt, ein absoluter Linux-Guru. Sein Vorschlag:
Code:
find /volume1/photo -not \( -name '@eaDir' -prune \) -iname '*.jpg' | wc -l
Das bewirkt, dass find gar nicht erst in die @eaDir-Verzeichnisse hinabsteigt, was dann erst wieder gefiltert werden müsste. Antwortzeit 83 ms statt 1,7s.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Hagen2000

Hagen2000

Benutzer
Mitglied seit
25. Mai 2016
Beiträge
107
Punkte für Reaktionen
25
Punkte
28
@Herbert80 Sorry, das fehlende Leerzeichen geht auf meine Kappe ;)
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat