# [KSH/BASH] Trier les fichiers par taille sur un FS

## dapsaille

Bonjour,

 Petite colle =

 Comment trier dans un dossier les fichiers par taille étant sur un filesystem et pas les autres ?

 Traduction = dans /apps FS=/dev/hda4 j'ai plein d'autres fs montés =

/apps/test1   FS=/dev/sda4

/apps/test2   FS=/dev/sdb4

etc etc etc 

Je dois supprimer des fichiers trop gros du fs /dev/hda4 qui correspond à /apps .. 

mais je ne vois pas comment faire le tri entre les fichiers appartenant à /dev/hda4 des autres FS ...

 Bref helpppppp ^^

EDIT= Mise en page et explicationnage plus pointu ^^

----------

## kwenspc

un ptit script bash ça devrait pas être trop compliqué non? Une combinaison entre mount pour connaitre les points de montage (un ptit mount filtré avec grep) autres dans /apps et ensuite les exclure dans une recherche avec find, ça doit être faisable. Au pire avec find tu te limite dans apps à une profondeur de 1 (donc il va pas dans les autres rep) puis dans une boucle sur les rep de apps (en excluant ceux trouvés avec mount) tu relance le find mais sans limite de profondeur.

[edit]  :Laughing:  j'avais pas vu le "KSH", mais j'imagine que ça doit pas être bien différent si? j'en sais rien en fait... Ah sinon dans find y a une option "-xdev" mais est ce que ça evite juste de chercher dans les fs différent ou dans les points de montages, faut tester[/edit]

----------

## ryo-san

salut,

Pour trier sur la sortie c'est 

```
ls -lS
```

par exemple, et les tests de tailles surement avec 

```
du -h
```

Sinon le "find" conseillé par kwenspc a l'air approprié.

----------

## dapsaille

 *kwenspc wrote:*   

> un ptit script bash ça devrait pas être trop compliqué non? Une combinaison entre mount pour connaitre les points de montage (un ptit mount filtré avec grep) autres dans /apps et ensuite les exclure dans une recherche avec find, ça doit être faisable. Au pire avec find tu te limite dans apps à une profondeur de 1 (donc il va pas dans les autres rep) puis dans une boucle sur les rep de apps (en excluant ceux trouvés avec mount) tu relance le find mais sans limite de profondeur.
> 
> [edit]  j'avais pas vu le "KSH", mais j'imagine que ça doit pas être bien différent si? j'en sais rien en fait... Ah sinon dans find y a une option "-xdev" mais est ce que ça evite juste de chercher dans les fs différent ou dans les points de montages, faut tester[/edit]

 

Yes ca fait plaisir .. en fait j'avais suivi le même cheminement sauf que je sais spécifier QUOI afficher mais QUOI NE PAS afficher .. d'ou ma galère ..

donc comment balancer les =/ de /apps dans le pipe du exclude find ??

Rhooooo la phrase incompréhensible ^^ j'adore

----------

## DidgeriDude

Et pourquoi pas remonter /dev/hda4 ailleurs, avec un mount -bind par exemple ?

----------

## dapsaille

 *DidgeriDude wrote:*   

> Et pourquoi pas remonter /dev/hda4 ailleurs, avec un mount -bind par exemple ?

 

 Non je ne peux pas me permettre .. je ne fais malheureusement pas ce que je veux sur les serveurs en prod   :Wink: 

----------

## ryo-san

Terrible la signature dapsaille , je decouvre ^^

----------

## DidgeriDude

A coup de grep et cut, sed, ou awk sur la sortie de mount, tu dois pouvoir récupérer la liste des FS montés dans le dossier où est monté /dev/hda4. Il reste juste à exclure cette liste des dossiers à traiter...

C'est juste une autre idée... pas trop difficile à coder en plus, enfin... à vue de nez  :Wink: 

----------

## bob1977

Peut-etre avec "du -x" pour exclure tous les FS differents de celui passe  en argument

----------

## DidgeriDude

 *bob1977 wrote:*   

> Peut-etre avec "du -x" pour exclure tous les FS differents de celui passe  en argument

 

A oui, pas mal du tout ça aussi !!!!

----------

## Oupsman

 *dapsaille wrote:*   

> Bonjour,
> 
>  Petite colle =
> 
>  Comment trier dans un dossier les fichiers par taille étant sur un filesystem et pas les autres ?
> ...

 

depuis /apps

find . -xdev -exec ls -al {} ';' | sort -rn -k 5 | head -n 10 va t'afficher les 10 plus gros fichiers de ton FS.

----------

## bob1977

```
du -ax /apps |sort -n
```

va trier les fichiers et repertoires du meme systeme de fichier que /apps. Le probleme, c'est que ca affiche aussi la taille des repertoires. Mais un petit traitement dans un script permet de les distinguer facilement.

----------

## Oupsman

Je vais précher pour ma paroisse, mais ma solution a l'avantage de fonctionner quelque soit le système UNIX.

J'oblige les admin unix juniors de la boite à l'apprendre par coeur, et si ils l'oublient, je les fouettent  :Twisted Evil: 

----------

## bob1977

 *Quote:*   

> Je vais précher pour ma paroisse, mais ma solution a l'avantage de fonctionner quelque soit le système UNIX.
> 
> J'oblige les admin unix juniors de la boite à l'apprendre par coeur, et si ils l'oublient, je les fouettent 

 

 En quoi ma commande n'est pas compatible pour tous les unix. Pour "du", j'ai pris les options posix et pour sort, c'est pareil que toi. En ce qui concerne le script, il est tout basique du style pour tout fichier de la liste, si c'est un repertoire ignorer sinon afficher.

 Voila, c'est juste pour savoir.

----------

## dapsaille

SNIRFFFF

 Vous êtes trop forts je vous adore 

/me petite larme a l'oeil à 5h30 du mat en voyant tout ca :p

 Bon je saute sur un AIX en arrivant au taff et je vous confirme le truc   :Laughing: 

----------

## dapsaille

 *ryo-san wrote:*   

> Terrible la signature dapsaille , je decouvre ^^

 

J'avoue ne pas en être l'auteur ^^ mais j'ai bien aimé .. pour une fois c'est guilleret vis à vis de microsoft

----------

## Oupsman

 *bob1977 wrote:*   

>  En quoi ma commande n'est pas compatible pour tous les unix. Pour "du", j'ai pris les options posix et pour sort, c'est pareil que toi. En ce qui concerne le script, il est tout basique du style pour tout fichier de la liste, si c'est un repertoire ignorer sinon afficher.
> 
>  Voila, c'est juste pour savoir.

 

Il me semble pas avoir vu ces options là dans la page man de du pour un solaris 6 ou 7. Oui je sais c'est vieux, mais ca existe encore.

[quadripilosécateur]

Pis toi ta commande elle donne les fichiers du plus petit au plus grand   :Wink: 

[/quadripilosécateur]

----------

## bob1977

 *Quote:*   

> Il me semble pas avoir vu ces options là dans la page man de du pour un solaris 6 ou 7. Oui je sais c'est vieux, mais ca existe encore.
> 
> [quadripilosécateur]
> 
> Pis toi ta commande elle donne les fichiers du plus petit au plus grand 
> ...

 

  ok. J'ai vraiment pas de bol si ca n'est pas dans solaris 6   :Sad:   Au moins, je serai moins bete ce soir

----------

