Frage

Ich habe die Frage Wie Sie Dateien erfasse in SMB mit einer Anwendung? offen und ich war woundering ob vielleicht gibt eindeutige IDs für Dateien sind so, dass ich verfolgen können, wenn eine Datei / Ordner verschoben wird. Gibt es so etwas? Es kann sehr debian spezifisch sein

War es hilfreich?

Lösung

Die Antwort ist wie immer ‚es hängt‘. Was meinen Sie mit ‚eindeutiger ID‘? Würde diese ID ändern, wenn der Inhalt der Datei geändert wird, oder würde man bedenkt, dass als die gleiche Datei? In Unix definiert die Inode zusammen mit dem Gerät der einzigartige id ', aber das ist auch dann, wenn der Inhalt ändert beibehalten.

Wenn Sie wollen jetzt, was eine Datei berührt, können Sie auf der gleichen Maschine verwenden inotify um herauszufinden, was zu Dateien geschieht (oder dessen Vorstufe: dnotify).

Wenn Sie benötigen, es Maschinen accross, dann gehe ich davon aus Samba benachrichtigt würde verwenden inotify konvertieren, das zu SMB / CIFS-Ereignisse, aber ich bin nicht vertraut mit dem.

Wenn Sie eine inhaltsbasierte ID wollen und deshalb verwenden Hashes, müssen Sie User-Space gehen. Zum Beispiel ist dies genau das, was Git (das Versionskontrollsystem) tut: es die Hashes der Inhalte verfolgt eine einzigartige id 'haben

.

Andere Tipps

Wenn die Dateien nicht bewegt werden, können Sie einen Hash verwenden.

Wenn Sie einen Daemon im Hintergrund laufen haben, schreiben Sie ein Programm mit inotify Bewegungsereignisse moniter.

Wenn Sie das nicht können, können Sie die Inode-Nummer verwenden (aber die könnte Änderung an einer Datei verschieben).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top