Récupérer la taille d'un répertoire
M3t@
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
ceci n'est pas une question mais un shell que j'ai crée et je veut le partager avec vous j'esper qu'il vous aidera un jour :)
tous les commentaire sont les bienvenu, mais surtout les amélioration ;)
explication:
ce shell récupéré le taille d'un répertoire puis vérifier s'il dépasse une certaine taille (ici 1 Go) il compresse le contenu du répertoire, met le fichier comprimée (le fichier compresser porte le nom de la date de compression) dans /root et enfin il vide le répertoire
utilité:
très utile pour gérer les log sur des serveurs qui sauvegarde beaucoup de logs
-------------------------------------------cut-----------------------------------------------
#!/bin/sh
du -bs /votre_répertoire > /tmp/out.$$
SIZE=`awk '{print $1}' /tmp/out.$$`
if [ $SIZE -gt 1000000000 ]
then
DATE=$(date +%d-%m-%Y-%H-%M)
zip -r /root/${DATE}.zip /votre_répertoire
rm -fr /votre_répertoire/*
echo "logs sauvegarder et espace liberer"
echo "$?"
else
echo "espace suffisant !!!!"
echo "$?"
fi
rm /tmp/out.$$
------------------------------------------------cut-----------------------------
désoler pour les fautes d'orthographe j'ai été précis :*)
ceci n'est pas une question mais un shell que j'ai crée et je veut le partager avec vous j'esper qu'il vous aidera un jour :)
tous les commentaire sont les bienvenu, mais surtout les amélioration ;)
explication:
ce shell récupéré le taille d'un répertoire puis vérifier s'il dépasse une certaine taille (ici 1 Go) il compresse le contenu du répertoire, met le fichier comprimée (le fichier compresser porte le nom de la date de compression) dans /root et enfin il vide le répertoire
utilité:
très utile pour gérer les log sur des serveurs qui sauvegarde beaucoup de logs
-------------------------------------------cut-----------------------------------------------
#!/bin/sh
du -bs /votre_répertoire > /tmp/out.$$
SIZE=`awk '{print $1}' /tmp/out.$$`
if [ $SIZE -gt 1000000000 ]
then
DATE=$(date +%d-%m-%Y-%H-%M)
zip -r /root/${DATE}.zip /votre_répertoire
rm -fr /votre_répertoire/*
echo "logs sauvegarder et espace liberer"
echo "$?"
else
echo "espace suffisant !!!!"
echo "$?"
fi
rm /tmp/out.$$
------------------------------------------------cut-----------------------------
désoler pour les fautes d'orthographe j'ai été précis :*)
A voir également:
- Récupérer la taille d'un répertoire
- Comment réduire la taille d'un fichier - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Comment récupérer un compte facebook piraté - Guide
- Reduire taille image - Guide
- Récupérer mon compte facebook désactivé - Guide
2 réponses
Salut,
Merci déjà pour cette contribution.
Ensuite, pourquoi passer par un fichier temporaire (/tmp/out.$$) ?
Autant récupérer le résultat directement dans la variable :
Et pour finir, le 'echo "$?"' ne sert à rien, dans la mesure où tu l'affiches après un 'echo "logs sauvegardés et espace libéré"' qui forcément dans ce cas va s'exécuter et donc renvoyer un code retour égal à 0 (vrai) ;-\
;-))
Merci déjà pour cette contribution.
Ensuite, pourquoi passer par un fichier temporaire (/tmp/out.$$) ?
Autant récupérer le résultat directement dans la variable :
SIZE=$(du -bs /votre_répertoire 2>/dev/null | awk '{print $1})
Et pour finir, le 'echo "$?"' ne sert à rien, dans la mesure où tu l'affiches après un 'echo "logs sauvegardés et espace libéré"' qui forcément dans ce cas va s'exécuter et donc renvoyer un code retour égal à 0 (vrai) ;-\
;-))
Bonjour,
Merci pour le code. Par soucis de stabilite, il vaudrait mieux ne pas stocker le fichier compresse dans /root, mais dans un repertoire sur une partition separee*. /var est souvent sur une partition separee et est dediee a ce genre de stockage.
Bonne journee !
*Pour connaitre les partitions sur le systeme et leur point de montage:
Merci pour le code. Par soucis de stabilite, il vaudrait mieux ne pas stocker le fichier compresse dans /root, mais dans un repertoire sur une partition separee*. /var est souvent sur une partition separee et est dediee a ce genre de stockage.
Bonne journee !
*Pour connaitre les partitions sur le systeme et leur point de montage:
df
le 'echo "$?"' je l'avait mais pour être sur que tous va bien ;)
par contre j'ai tester votre code (il vous manque une ' apré la dernier })
---------------------------------cut-----------------------------------
SIZE=$(du -bs /votre_répertoire 2>/dev/null | awk '{print $1}')
echo $SIZE
---------------------------------cut----------------------------------
résultat:
[root@home /]# ./test.txt
Rien n'est afficher :/
merci ;)
;-\