Re : programmation d'un script de purge

Ces forums sont actuellement fermés. Vous ne pouvez donc plus y poster de messages. Les sujets existants sont toutefois conservés pour historique.

Sujet en cours de lecture : programmation d'un script de purge par | (Haut de page) |


Re : programmation d'un script de purge

Tian Envoyé le : 15/03/2004 à 17:58
Bonjour,
NaLaiNG a dit :
comment programmer un script qui me permet d'effacer le contenu d'un repertoire le plus ancien supérieur a un volume ? ex : j'ai des images qui s'enregistrent par une webcam, et je veux effacer les plus anciennes quand je dépasse 10 Mo d'images dans un repertoire.
merci =)

Voici une ligne de commande qui devrait permettre de recuperer le nom de ce repertoire. Il suffit ensuite d'utiliser ceci pour une commande rm -r (qui fera la suppression recursive)

du -ks `ls -t`  | awk '{if ($1 > 10240) print $2}' | tail -1 Cela ne marche que s'il n'y a que des repertoires susceptibles d'etre supprimes dans le repertoire ou l'on se trouve (car s'il y a un fichier de + de 10Mo, il risquerait d'etre supprime egalement).

Voici les explications de ceci :

* du permet de calculer la taille des fichiers et repertoires. Avec l'option k il la donne en Ko et avec l'option s il n'est pas recursif et donne donc uniquement la taille de ce qui lui est passe en parametre.

* ls -t est ce qui est passe en parametre a du. Cela permet de lister les fichiers et repertoires en les organisant par anciennete (les + recents en 1er).

* awk est ensuite utilise pour filter. Ce qui precedait renvoyait un affichage de cette forme :

456 Repertoire1
8879 Repertoire2
447 Repertoire3
Avec donc en 1ere colonne la taille en Ko et en 2eme colonne le nom du repertoire. Les commandes passees a awk se lisent comme suit : "Si la 1ere colonne a une valeur superieure a 10240 (ce qui correspond au 10Mo de l'exemple) alors afficher la 2eme colonne"

* tail -1 permet d'afficher uniquement la derniere ligne pour etre utilisee ensuite.  

Pas de réponse