Hello,

Pour répondre à Félix, dans le cas de mon client (723Go de données de bureautique) :

  45475 Dossiers
 377666 Fichiers
 423141 Entrées total

Merci bien pour la commande !  ;-)

Personnellement, je trouve que le convmv fait assez rapidement le travail.

a+

Samuel

Le 22.04.24 à 08:59, felix via gull a écrit :
Salut Samuel,

Le Sun, Apr 21, 2024 at 11:18:55PM +0200, Samuel Chenal via gull a écrit :
Là, mon cron passe convmv tous les soirs sur les partages samba (il
s'exécute assez rapidement) et il "corrige" les noms de fichiers. Depuis, je
n'ai plus de soucis avec Nextcloud. Ex. de la sortie envoyée par courriel :

Ready! I converted 13 files in 69 seconds.

Sur ~720Go de données.
Ok 720G, mais s'agit-il de 1000 fichier de 720Mo ou de 720 millions de
fichiers d'un kilo?

Petit recensement (~4186.27Gb):
$ find . -type d -printf 'Dossiers\nEntrées total\n' -o \
     -type f -printf 'Fichiers\nEntrées total\n' | sort | uniq -c | sort -n
  370188 Dossiers
5755773 Fichiers
6125961 Entrées total


Si tu cherches à réduire le gap:
  .1 attendre que cron lance le job
  .2 attendre potentiellement plus d'une minute que convmv trouve le fichier
     à renommer...

2 pistes:

  - inotifywait est clairement la première idée mais sur un gros répertoire,
    cela risque d'être lourd!
  - Suivre les logs de samba et réagir à la modification d'un nom (Je traque
    le mot "rename_internals_fsp" )

    - Soit en tâche de fond, basé sur `tail -f |` or `journalctl -axfu smbd |`
    - Soit dans un cron (En fait, j'utilise ça pour répercuter des ``mv'' dans
      les backups AVANT de lancer rsync toute les 60'. La variable $since
      correspond à la dernière execution du script. sed repère les nom modifiés
      et les présente séparés par un octet '0x01' afin de les passer a mon
      script bash avec while IFS=$'\1' read -r oldname newname; do ),

       journalctl -S "$since" -axu smbd |
        sed -ne '/\/\._.* -> .*\._/d;
         /: \(.*\)\/Nouveau dossier -> \1/d;
         /\(\.tmp\|\.TMP\|\.swap|\.bak\)\( ->.*\|\)$/d;
         s/^.*rename_internals_fsp: succe.*rename on \(.*\) -> 
\(.*\)$/\1\o1\2/p'

Si vous êtes intéressé, je peux poster ici, les quelque lignes de bash qui
me servent à créer un script à envoyer se faire executer sur les backups.

--
_______________________________

Samuel Chenal
[email protected]
https://www.ll-dd.ch
_______________________________

Empreinte GPG :
BD25 7B5F 442B DF2D 4E28
8203 B2A2 7269 4E00 5136

Merci d'utiliser des formats de
fichiers ouverts (comme ODF) !

_______________________________________________
gull mailing list
[email protected]
https://forum.linux-gull.ch/mailman/listinfo/gull

Répondre à