On Sun, 16 May 2004 19:30:47 +0200, Giuseppe wrote:
Bonjour,
Je souhaite écrire un script shell qui
- compte l'espace occupé par les fichiers de type .tar dans un répertoire donné
- s'ils occupents plus de X Mb, effacer le plus ancien
Quelles fonctions utiliser
"find" pour rechercher "rm" pour supprimer "du" pour compter l'espace disque utilisé
ou où touver de l'aide?
dans les manuels en questions.
mais logrotate est sans doute plus adapter si c'est pour le faire régulièrement dans le temps
-- William.
Rakotomandimby Mihamina
bonjour
Il n'y a pas de fonction predefinies en shell ( a proprement parler )
pour voir la taille occupee par un fichier , tu peu directement apprendre sed et awk et utiliser la sortie de "ls -l"
pour les dates , tu peux faire aussi avec la sortie de ls -l , ou alors avec des options de "find" ( man find )
trouve un bon tutoriel awk et sed ( tu en aura besoin dans ta vie d'admin , je te le dis ) et pour les sscript , un bon debut est le tutoriel de chez lea-linux.org , mais il est en bash . Les spé (enfin .. ceux que je connais ) du script shell recommandent d'utiliser zsh ( bash est vieux a ce qu'il parait )
Il n'y a pas de fonction predefinies en shell ( a proprement parler )
pour voir la taille occupee par un fichier , tu peu directement
apprendre sed et awk et utiliser la sortie de "ls -l"
pour les dates , tu peux faire aussi avec la sortie de ls -l , ou alors
avec des options de "find" ( man find )
trouve un bon tutoriel awk et sed ( tu en aura besoin dans ta vie
d'admin , je te le dis ) et pour les sscript , un bon debut est le
tutoriel de chez lea-linux.org , mais il est en bash . Les spé (enfin ..
ceux que je connais ) du script shell recommandent d'utiliser zsh ( bash
est vieux a ce qu'il parait )
Il n'y a pas de fonction predefinies en shell ( a proprement parler )
pour voir la taille occupee par un fichier , tu peu directement apprendre sed et awk et utiliser la sortie de "ls -l"
pour les dates , tu peux faire aussi avec la sortie de ls -l , ou alors avec des options de "find" ( man find )
trouve un bon tutoriel awk et sed ( tu en aura besoin dans ta vie d'admin , je te le dis ) et pour les sscript , un bon debut est le tutoriel de chez lea-linux.org , mais il est en bash . Les spé (enfin .. ceux que je connais ) du script shell recommandent d'utiliser zsh ( bash est vieux a ce qu'il parait )
Je me suis en train d'essayer de stocker dans une variable l'espace total occupé par l'ensemble des fichiers .tar de /myfolder/.
Dans le shelle, si je fais stat -c +%s /myfolder/*.tar ¦ xargs
J'obtiens un truc style +29789092 +29721092 +19689092
J'ai pensé que je peu exploiter cela, mais comment?
J'ai essayé total_size=$((stat -c +%s /myfolder/*.tar ¦ xargs)) mais la syntaxe est mauvaise...
que modifier?
Ensuite, deuxième étape, j'aimerai comparer dans un "if" si total_size est supérieur à une valeur prédéfinie et si c'est le cas je vais effacer le fichier le plus ancien que je récupère avec ls -tr /myfolder/*.tar ¦ head -1
est-ce une manière de procéder envisageable?
Merci pour votre aide?
Giuseppe
Giuseppe wrote:
Bonjour,
Je souhaite écrire un script shell qui
- compte l'espace occupé par les fichiers de type .tar dans un répertoire donné
- s'ils occupents plus de X Mb, effacer le plus ancien
Quelles fonctions utiliser ou où touver de l'aide?
Merci pour votre précieuse aide!
Merci à tous pour vos réponses!
Je me suis en train d'essayer de stocker dans une variable l'espace
total occupé par l'ensemble des fichiers .tar de /myfolder/.
Dans le shelle, si je fais
stat -c +%s /myfolder/*.tar ¦ xargs
J'obtiens un truc style
+29789092 +29721092 +19689092
J'ai pensé que je peu exploiter cela, mais comment?
J'ai essayé
total_size=$((stat -c +%s /myfolder/*.tar ¦ xargs))
mais la syntaxe est mauvaise...
que modifier?
Ensuite, deuxième étape, j'aimerai comparer dans un "if" si total_size
est supérieur à une valeur prédéfinie et si c'est le cas je vais effacer
le fichier le plus ancien que je récupère avec
ls -tr /myfolder/*.tar ¦ head -1
est-ce une manière de procéder envisageable?
Merci pour votre aide?
Giuseppe
Giuseppe wrote:
Bonjour,
Je souhaite écrire un script shell qui
- compte l'espace occupé par les fichiers de type .tar dans un
répertoire donné
- s'ils occupents plus de X Mb, effacer le plus ancien
Quelles fonctions utiliser ou où touver de l'aide?
Je me suis en train d'essayer de stocker dans une variable l'espace total occupé par l'ensemble des fichiers .tar de /myfolder/.
Dans le shelle, si je fais stat -c +%s /myfolder/*.tar ¦ xargs
J'obtiens un truc style +29789092 +29721092 +19689092
J'ai pensé que je peu exploiter cela, mais comment?
J'ai essayé total_size=$((stat -c +%s /myfolder/*.tar ¦ xargs)) mais la syntaxe est mauvaise...
que modifier?
Ensuite, deuxième étape, j'aimerai comparer dans un "if" si total_size est supérieur à une valeur prédéfinie et si c'est le cas je vais effacer le fichier le plus ancien que je récupère avec ls -tr /myfolder/*.tar ¦ head -1
est-ce une manière de procéder envisageable?
Merci pour votre aide?
Giuseppe
Giuseppe wrote:
Bonjour,
Je souhaite écrire un script shell qui
- compte l'espace occupé par les fichiers de type .tar dans un répertoire donné
- s'ils occupents plus de X Mb, effacer le plus ancien
Quelles fonctions utiliser ou où touver de l'aide?
Merci pour votre précieuse aide!
no_spam
On Sun, 16 May 2004 23:29:51 +0200, Giuseppe wrote:
Merci à tous pour vos réponses!
Je me suis en train d'essayer de stocker dans une variable l'espace total occupé par l'ensemble des fichiers .tar de /myfolder/.
Dans le shelle, si je fais stat -c +%s /myfolder/*.tar | xargs
J'obtiens un truc style +29789092 +29721092 +19689092
total_size=`du -ck /myfolder/*.tar | tail -n 1 | sed s/ttotal// ` Il y a surement mieux...
Ensuite, deuxième étape, j'aimerai comparer dans un "if" si total_size est supérieur à une valeur prédéfinie et si c'est le cas je vais effacer le fichier le plus ancien que je récupère avec ls -tr /myfolder/*.tar | head -1
if [ $total_size -gt $limit ] ; then rm -f `ls -tr /myfolder/*.tar | head -1` ; fi
On Sun, 16 May 2004 23:29:51 +0200, Giuseppe wrote:
Merci à tous pour vos réponses!
Je me suis en train d'essayer de stocker dans une variable l'espace
total occupé par l'ensemble des fichiers .tar de /myfolder/.
Dans le shelle, si je fais
stat -c +%s /myfolder/*.tar | xargs
J'obtiens un truc style
+29789092 +29721092 +19689092
total_size=`du -ck /myfolder/*.tar | tail -n 1 | sed s/\ttotal// `
Il y a surement mieux...
Ensuite, deuxième étape, j'aimerai comparer dans un "if" si total_size
est supérieur à une valeur prédéfinie et si c'est le cas je vais effacer
le fichier le plus ancien que je récupère avec
ls -tr /myfolder/*.tar | head -1
if [ $total_size -gt $limit ] ; then
rm -f `ls -tr /myfolder/*.tar | head -1` ;
fi
On Sun, 16 May 2004 23:29:51 +0200, Giuseppe wrote:
Merci à tous pour vos réponses!
Je me suis en train d'essayer de stocker dans une variable l'espace total occupé par l'ensemble des fichiers .tar de /myfolder/.
Dans le shelle, si je fais stat -c +%s /myfolder/*.tar | xargs
J'obtiens un truc style +29789092 +29721092 +19689092
total_size=`du -ck /myfolder/*.tar | tail -n 1 | sed s/ttotal// ` Il y a surement mieux...
Ensuite, deuxième étape, j'aimerai comparer dans un "if" si total_size est supérieur à une valeur prédéfinie et si c'est le cas je vais effacer le fichier le plus ancien que je récupère avec ls -tr /myfolder/*.tar | head -1
if [ $total_size -gt $limit ] ; then rm -f `ls -tr /myfolder/*.tar | head -1` ; fi