Supprimer efficacement 1 million de fichiers sur des serveurs Linux

Dernière mise à jour sur 6 sept. 2023 à 13:14:56.
Catégorie: Serveurs cloud

CentOS Debian Linux

Nous sommes tous déjà passés par là : certains scripts incontrôlables causent des maux de tête car un dossier - généralement des sessions - était rempli de millions de fichiers. Linux n'est pas très content de cela, la suppression du répertoire n'est pas une option, et la fidèle commande "rm -rf" semble également avoir abandonné. Pour aggraver les choses, vous souhaitez simplement supprimer des fichiers d'il y a quelques jours... Quelles sont les options ?

Find est votre ami

La commande Linux "find" est une solution possible. Spontanément, beaucoup chercheront à :

find /yourmagicmap/* -type f -mtime +3 -exec rm -f {} \;

La commande ci-dessus générera une liste des fichiers de plus de trois jours et transmettra chaque fichier trouvé à la commande rm. Cependant, il y a un problème avec la règle ci-dessus : cela prendra du temps, car appeler la commande rm un million de fois n'est pas non plus ce que l'on peut appeler efficace.

Une meilleure option est la commande ci-dessous :
 find /yourmagicmap/* -type f -mtime +3 -delete

Cela demande immédiatement à la commande find de supprimer tout cela également. Faites-en une habitude tout de suite et mettez-la dans une tâche cron, si cela doit être fait fréquemment.

L'alternative rsync !

rsync est sans aucun doute l'une des commandes les plus utiles en matière d'actions sur les fichiers. Rsync peut bien sûr gérer toutes les synchronisations de volume possibles, mais il existe également un moyen de vider un répertoire via rsync.
Dans cet exemple, nous supposons que vous avez un dossier appelé /tmp/empty/ qui est vide et un dossier /tmp/session/ qui contient trop de fichiers inutiles. Vous pouvez supprimer les fichiers via la ligne ci-dessous :

rsync -a --delete /tmp/empty /tmp/session/

Quel est maintenant le commando le plus rapide ?

rm: supprimer des masses de fichiers n'est pas une option !

find -exec: une option, mais lente!

find -delete: moyen rapide de supprimer des masses de fichiers.

rsync --delete: sans aucun doute le plus rapide !


Articles connexes

Les services gérés sous les feux de la rampe

Nos administrateurs système ont soulevé quelques cargos remplis de conteneurs de travail. (oui, ce jeu de mots était intentionnel, plus...

En savoir plus

Quel niveau de service (SLA) est de vigueur sur un hébergement serveur (co-location)?

Nos clients ayant un hébergement serveur dans notre datacentre bénéficient également de garanties excellentes. Chaque hébergement serveur chez Kinamo dispose...

En savoir plus

Découvrez ici comment nous avons corrigé une erreur de blocage lors de la mise à niveau d'ESXi 6.5 vers 7.0 update 2 via vSphere Lifecycle Manager.

Kinamo maintient plusieurs clusters VMware vSphere, non seulement pour notre propre infrastructure, mais aussi pour une variété de clients. Comme...

En savoir plus

Besoin d'aide supplémentaire?

Vous n'avez pas obtenu de réponse à toutes vos questions?
Ne vous inquiétez pas, faites une demande d'assistance!

Kinamo

Sélectionnez votre langue

Toutes les langues: