Aujourd'hui au menu : un petit script qui vous permettra de faire le vide dans vos logs. Le script vide les logs en cours d'utilisation (pour éviter des erreurs qui apparaissent des fois quand on les supprime simplement) et il supprime les vieux logs (ceux qui ont un chiffre derrière). Seuls les logs sous forme de texte sont gérés (les tar.gz et compagnie peuvent être assez simplement)
#!/bin/bash
# Mickaël Martin under licence GPLv2
# viderlog version 1.4
# Ce script est dangereux, ne l'exécutez pas si vous
# n'êtes pas sûr de ce que vous faites !
# This script is dangerous, don't run it if
# you aren't sure what you do !
boollist="0"; #permet de vérifier que l'utilisateur à bien vu les fichiers concernés
dosslog="/var/log/"
cd $dosslog
#menu
while [ "$choix" != "5" ]; do
echo "1.Voir les fichiers concernés"
echo "2.Vider les logs (logs actuels)"
echo "3.Supprimer les anciens logs"
echo "4.Nettoyer (action 2&3)"
echo "5.Quitter"
echo -en "\nVotre choix : "
read choix
# on initialise les listes de fichiers concernés
if [ "$choix" = "1" ] ; then
afics=$(find -exec file {} \; | grep text | cut -d':' -f1)
if [ "$afics" = "" ] ; then
echo "pas de fichiers à vider"
else
echo "-->listes de fichiers qui vont être vidés :"
echo $afics
fi
vfics=$(find -name '*\.[0-9]')
if [ "$vfics" = "" ] ; then
echo "pas de fichiers à supprimer"
else
echo "-->listes de fichiers qui vont être supprimés :"
echo $vfics
fi
boollist="1"
fi
# on vide les logs actuels
if [ "$choix" = "2" ] || [ "$choix" = "4" ] ; then
if [ "$boollist" = "1" ] ; then
echo -n "Réinitialisation des logs actuels... "
for unfic in $afics; do
>$unfic
done
if [ "$choix" != "4" ] ;then boollist="0" ;fi
echo "OK"
else
echo "impossible de vider les logs sans avoir listé les fichiers concernés"
fi
fi
#on supprime les anciens logs
if [ "$choix" = "3" ] || [ "$choix" = "4" ] ; then
if [ "$boollist" = "1" ] ; then
echo -n "Suppression des vieux logs... "
for unfic in $vfics; do
rm -Rf $unfic
done
boollist="0"
echo "OK"
else
echo "impossible de supprimer les logs sans avoir listé les fichiers concernés"
fi
fi
done