6 votes

Le moyen le plus rapide pour chown un périphérique entier (xfs)

J'ai besoin de chown 1,5 millions de fichiers sur un lecteur. C'est ce que je fais actuellement :

sudo chown -R www-data:www-data /root-of-device

mais ça prend un temps terriblement long pour fonctionner. Je me demandais s'il n'y avait pas une sorte de moyen super rapide de bas niveau pour chown chaque fichier sur le disque.

8voto

TH310 Points 46

Utilice xargs -p ou GNU parallel pour accélérer considérablement les choses.

6voto

aseq Points 4490

Malheureusement, je ne pense pas que cela existe, mais je serais agréablement surpris si c'était le cas. Vous pourriez écrire votre propre implémentation en C et l'optimiser fortement. Cependant, le succès de cette démarche dépend de la qualité de l'optimisation. chown est pour commencer. Et si l'on considère que c'est l'un des principaux utilitaires, je dirais qu'il est plutôt optimisé. De plus, vous êtes probablement limité par la vitesse d'entrée/sortie.

J'ai eu un certain succès en évitant les limitations de ls y rm en faisant passer les résultats de trouver a xargs dans le cas où un répertoire contient un grand nombre de fichiers, c'est-à-dire :

find /path/* | xargs rm

Donc, à vue de nez, peut-être que ça peut accélérer chown dans le cas où il est plus lent à analyser récursivement un système de fichiers que le programme trouver :

sudo find /path/* | xargs chown www-data:www-data

0voto

Can Gencer Points 171

J'utilise également Amazon EC2 et j'ai eu ce problème. 2 choses :

Correction de la situation actuelle : Vous devrez vous accommoder de la lenteur. Vous pouvez peut-être utiliser "screen" ou quelque chose de similaire pour que le processus puisse se poursuivre en arrière-plan.

Réparer la situation future : Vous pourriez regarder en amont et voir comment les fichiers sont générés en premier lieu. Puisque vous avez mentionné www-data, je suppose que le consommateur des fichiers est Apache. Si les fichiers sont déposés par un autre programme (NFS, Samba, SSH, etc.), assurez-vous que ces programmes définissent l'utilisateur:groupe comme www-data:www-data.

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