[gull] [resolu] exfat - inconsistence du catalogue sous Linux et macOS - utf8 nfc nfd

Samuel Chenal samuel.chenal at ll-dd.ch
Tue Apr 23 17:16:23 CEST 2024


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
samuel.chenal at ll-dd.ch
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) !



More information about the gull mailing list