Étiquette : xargs

8 juillet 2019 /

Lorsque le nombre de fichiers dans un répertoire dépasse les 30000, cela peut constituer un problème.

Voici les étapes à suivre pour mener à bien cette tâche:
1) Recherche tous les fichiers .txt dans le répertoire courant et ses sous-répertoires, puis écrit la liste complète de leurs chemins dans le fichier temporaire /tmp/fichiers_a_archiver.
find . -name '*.txt' -print > /tmp/fichiers_a_archiver
2) Crée une archive gzip (fichiers_a_archiver.tar.gz) contenant exactement les fichiers listés dans /tmp/fichiers_a_archiver.
L’option –files-from permet à tar de ne prendre que ces fichiers (très utile pour archiver sélectivement).
tar -cvzf fichiers_a_archiver.tar.gz --files-from /tmp/fichiers_a_archiver
3) Supprime tous les fichiers .txt trouvés (avec -v pour voir ce qui est supprimé).
find . -name '*.txt' | xargs rm -v
4 juin 2018 /

[pastacode lang= »bash » manual= »find%20.%20-mtime%20%2B180%20-print0%20%7C%20xargs%20-0%20tar%20-zcf%20..%2Fbackup_04-06-2018.tar.gz » message= »Pour faire une sauvegarde des fichiers de plus de 180 jours dans une archives compressée » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »find%20.%20-mtime%20%2B180%20-exec%20ls%20-1%20%7B%7D%20%2B%20%7C%20wc%20-l » message= »Pour connaitre le nombre de fichiers que nous avons sauvegardé » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »find%20.%20-mtime%20%2B180%20-exec%20rm%20%7B%7D%20%2B » message= »Il ne reste plus qu’a supprimer les fichiers que nous venons de sauvegarder » highlight= » » provider= »manual »/]

22 novembre 2015 /

J’ai rencontré cette petite erreur avec des répertoires contenant des millions de fichiers, qu’on vous demande de lister/supprimer, voici la solution la plus rapide.

find /chemin/repertoire -type f -name '*.log' | xargs rm -f

ou

find /chemin/repertoire -type f -name '*.log' -delete

ou encore :

find /chemin/repertoire -type f -name '*.log' -exec rm -rf {};

3 novembre 2015 /

Voici une petite commande pour débugger un serveur Apache. Elle fait un strace sur tous les processus Apache qui tournent sur la machine. Vous pourrez facilement identifier les nœuds d’étranglement avant une mise en production, ou détecter une procédure qui bloque.

Pour une distribution RPM :

ps awux | grep sbin/httpd | awk '{print"-p " $2}' | xargs strace -f

Pour une distribution Debian, (« apache » au lieu de « httpd »):

ps awux | grep sbin/apache | awk '{print"-p " $2}' | xargs strace -f

 

8 octobre 2015 /

Un petit script pour tuer un processus qui dure trop longtemps (ici php):

#!/bin/bash
/bin/ps -eo pid,etime,command|/bin/grep /usr/local/zend/bin/php|/bin/egrep '([0-9]+)([ ]+)([2-9]{1}[0-9]{1}:[0-9]{2})'|/bin/awk '{print $1}'|xargs -I{} kill {}