1 votes

locate/updatedb comme outil (Linux CLI) pour les CDs/DVDs

Je cherche un outil Linux pour rechercher des fichiers sur des supports hors ligne comme les CD et les DVD. Je sais qu'il existe de nombreux outils de "catalogage", mais ils sont tous graphiques et je veux un programme en ligne de commande. L'idéal serait qu'il fonctionne exactement comme l'ensemble bien connu locate/updatedb, à la seule exception que la mise à jour de la base de données devrait être interactive, de sorte que vous puissiez entrer un identifiant ou une description pour un support, qui sera imprimé par l'outil locate-like, par ex.

$ medialocate foo.png
MEDIA_DVD_01:/pictures/misc/foo.png
MEDIA_DVD_08:/photos/foo.png
MEDIA_DVD_08:/img/bar/foofoo.png

Un tel outil existe-t-il déjà ? Je n'ai rien trouvé, mais cela est probablement dû au fait que des termes comme "locale"/"cd"/"files"/"catalog" sont trop courants pour donner de bons résultats. Il ne serait pas trop difficile d'écrire un tel outil moi-même, mais je ne veux pas réinventer la roue ici.

1voto

JoshL Points 290

Vous pouvez utiliser updatedb pour qu'il analyse les chemins des supports amovibles, il suffit de configurer en conséquence les variables d'environnement PRUNEPATHS et PRUNEFS dans /etc/updatedb.conf ou équivalent. Bien que cela ne retienne que le chemin, si vous montez dans le même répertoire un média différent et que vous faites tourner updatedb, il écrasera (ou ajoutera ?) les fichiers.

Vous pouvez contourner ce problème en montant chacun de vos CD pour qu'il soit catalogué dans son propre répertoire, ce n'est pas très difficile, mais c'est un peu embêtant.

1voto

gareth_bowles Points 8717

Ma solution particulière à ce problème est d'utiliser isoinfo de wodim pour générer des fichiers dans un répertoire ~/dvddb/, avec le label du DVD comme nom de fichier (si vous n'utilisez pas les extensions RockRidge, modifiez -lR a -lJ ) :

isoinfo -lR -i /dev/scd0 > ~/dvddb/xxx.txt

Ensuite, pour trouver un dossier :

grep -i 'name' ~/dvddb/*

Vous pouvez créer des alias Shell.

-1voto

Zack Elan Points 821

J'utilise un Shell Shell du type :

#!/bin/bash
find $1 -type f -exec xmler.sh {} + > out.xml

Où xmler crée :

<file>
    <filename>someFilename.txt</filename>
    <md5sum>xxxxxxxxxxxx</md5sum>
    <date_modified>....</date_modified>
</file>

Les entrées du fichier sont enveloppées dans

<catalogue type="dvd" diskid="someid"></catalogue>

et ainsi de suite, dans un document XML. Je peux ensuite écrire des outils pour créer des catalogues et des index en HTML, des outils de recherche, etc.

Un peu bricolé, mais ça marche pour moi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X