Suche Lösung / FS Plugin für "ls -l /mnt/ | grep disk |

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
FIREBALL
Junior Member
Junior Member
Posts: 27
Joined: 2005-06-09, 09:58 UTC

Suche Lösung / FS Plugin für "ls -l /mnt/ | grep disk |

Post by *FIREBALL »

Hallo,
ich bin auf der Suche nach einer Lösung die mir sinngemäß diesen Ausdruck in ein FS-Plugin darstellt.

Code: Select all

ls -l /mnt/ | grep disk | ls -lR /mnt/`awk -F " " '{print $8}'`
Der Hintergrund ist folgender:
Ich habe einen unRAID Server. Das ist im Grunde eine Art Software-RAID auf slackware.
Die "Shares = Freigabeordner" sind hierbei über alle Laufwerke gespannt und die Dateien werden auch über alle Laufwerke verteilt.
Die Aufgabe ist nun herauszufinden, auf welchem Volume einzelne Dateien abgelegt sind. Ein Fs-Plugin im TC wäre eine klasse Lösung.

Ein unRAID-Server kann bis zu 24 Laufwerke zusammenfassen und bei den heutigen Festplattengrößen ein Speichervolumen von bis zu 96TB zur Verfügung stellen.
Es gibt Ansätze, die einzelnen Festplatten zu inventarisieren um nachvollziehen zu können, auf welchem Laufwerk welche Datei liegt, aber das dauert entsprechend ewig und ist im Handling nicht besonders komfortabel. Ein Plugin für den TC wäre m.E. die perfekte Lösung.

Ich bin für jeden Tipp dankbar, wie ich hier weiter kommen könnte.
Leider kann ich nicht selbst programmieren aber vielleicht ist das ja für Euch Profis ein Zweizeiler oder so?

Danke & Grüße
Zwei Dinge sind unendlich. Das Universum und die menschliche Dummheit - aber bei dem Universum bin ich mir noch nicht ganz sicher. AE
meisl
Member
Member
Posts: 171
Joined: 2013-12-17, 15:30 UTC

Post by *meisl »

Aus dem Forum das oben verlinkt ist:
graywolf wrote:
Quote from: graywolf on January 24, 2014, 01:24:19 PM wrote:output the following to a file should do the trick

ls -l /mnt/ | grep disk | ls -lR /mnt/`awk -F " " '{print $8}'`
actually I was getting too fancy there. mind was wrapped up in the middle of another script for work I was working on.

simplier version. output to file following line:

ls -lR /mnt/disk*

d'oh
Also willst Du den Inhalt der Verzeichnisse /mnt/disk0, /mnt/disk1, /mnt/disk2, ...sehen, aber rekursiv ("komplett", Option -R)?
Das dürften ziemlich lange Listen werden...
---
p.s.: der gute Albert hatte wohl recht :?
User avatar
ZoSTeR
Power Member
Power Member
Posts: 1050
Joined: 2004-07-29, 11:00 UTC

Post by *ZoSTeR »

You could create a compatible list for the packer plugin DiskDir.

Code: Select all

find /mnt/ -type d -printf %p/\\t0\\t%TY.%Tm.%Td\\t%TH:%TM.0\\r\\n , -type f -printf %f\\t%s\\t%TY.%Tm.%Td\\t%TH:%TM.0\\r\\n >/tmp/list_all_mnt.lst
After that you have to convert the forward slashes with sed or manually in an editor

Code: Select all

Remove //
sed 's/\/\//\//' <oldfile >newfile

Remove first column /
sed 's/^\///' <oldfile >newfile

Replace / with \
sed 's/\//\\/g' <oldfile >newfile
Create a local windows .lst file with the plugin first and make yourself familiar with it's format if something doesn't work.

And try 'find /mnt/' first to make sure it works.

*Edit jetzt schreib ich das Zeugs schon auf Englisch... :shock: Schlafmangel, Demenz? Hoffe Du brauchst keine extra Übersetzung

Suchen dann mit Strg+F / "Archive durchsuchen" oder einfach über Strg+B im Lst-Archiv

Bleibt noch die Frage wie performant das Ganze bei einer wirklich hohen Dateianzahl ist.

**Edit2: Grad mal das Windowsverzeichnis als Lst katalogisiert (ca 100.000 Dateien). Die Suchperformance sollte kein Problem sein ;)
FIREBALL
Junior Member
Junior Member
Posts: 27
Joined: 2005-06-09, 09:58 UTC

Post by *FIREBALL »

OK, ich habe den Vorschlag verstanden.
Aber das bedeutet, dass ich trotzdem immer ein aktuelles Inhaltsverzeichnis anlegen muss.
Ich dachte eher an ein Plugin, dass mir die Ordnerinhalte sozusagen on-the-fly auswertet und darstellt.

@meisl
Zur Verdeutlichung:
Ich sehe jetzt im TC nur z.B. sowas
\\RAID\Dateien\1.txt
\\RAID\Dateien\2.txt
\\RAID\Dateien\3.txt

Dabei können 1.txt, 2.txt, 3.txt auf verschiedenen Laufwerken liegen.
Also auf /mnt/disk0, /mnt/disk1, /mnt/disk2.

Das Plugin soll mir anzeigen, auf welcher disk die Datei liegt.
So wie oben vorgeschlagen, aber möglichst ohne manuellen Eingriff.
Zwei Dinge sind unendlich. Das Universum und die menschliche Dummheit - aber bei dem Universum bin ich mir noch nicht ganz sicher. AE
meisl
Member
Member
Posts: 171
Joined: 2013-12-17, 15:30 UTC

Post by *meisl »

@FIREBALL:
Sagen wir mal Du hast vier Dateien

Code: Select all

\\RAID\Texte\1.txt
\\RAID\Texte\2.txt
\\RAID\Bilder\1.jpg
\\RAID\Bilder\2.jpg
und drei disks: /mnt/disk0/, /mnt/disk1/ und /mnt/disk2/.
Dann liegt 1.txt entweder unter /mnt/disk0/Texte/1.txt oder /mnt/disk1/Texte/1.txt oder /mnt/disk2/Texte/1.txt.
Richtig soweit :?:

Nun möchtest Du mit TC zB nach \\RAID\Texte\ navigieren und statt:

Code: Select all

1    txt    <Größe>     <Datum>
2    txt    <Größe>     <Datum>
...lieber dies hier sehen:

Code: Select all

1    txt    <Größe>     <Datum>    disk0
2    txt    <Größe>     <Datum>    disk2
Richtig :?:

Wenn ja, dann wäre das eher über ein Content plugin zu lösen statt mit einem FS plugin, denke ich.

Noch 'ne Frage: kannst Du zusätzlich auch /mnt/ freigeben, zB. als \\MNT\?
(alternativ: die einzelnen disk0/, disk1/, ... unter /mnt/, zB. als \\DISK0\, \\DISK1\, ...)

Wenn wieder ja, dann hätte ich wohl 'ne Idee.
Post Reply