Juin 152011
si à un moment vous sentez que la connexion à votre serveur est assez lente, c’est peut-être parce que ce fichier est trop gros.
Faire une copie de wtmp dans un répertoire moins critique /tmp par exemple
$ cp /var/adm/wtmp /tmp/wtmp
Convertir le fichier en ascii
$ /usr/sbin/acct/fwtmp < /var/adm/wtmp > /tmp/wtmp
Créer un fichier wtmp plus petit des 100 dernières lignes du fichier wtmp:
$ tail -100 /tmp/wtmp > /tmp/wtmp.last
Ensuite reconvertir le fichier ascii en binaire :
$ /usr/sbin/acct/fwtmp -ic < /tmp/wtmp.last > /tmp/wtmp
remplacer le fichier:
$ mv /tmp/wtmp /var/adm/wtmp
et un piti script en cadeau :
Download : fwtmp.sh
#!/bin/ksh
case $(uname -s)
in
HP-UX) FWTMP=/usr/sbin/acct/fwtmp ;;
SunOS) FWTMP=/usr/lib/acct/fwtmp ;;
*) echo "[ $(uname -s) ] Non pris en charge"
exit 1
;;
esac
MAX_SIZE="1024000" # taille au dela de laquelle on veut purger le fichier
REST_LINES="10000" # le nombre d'elements que l'on veut garder
for XTMP in /var/adm/wtmp /var/adm/btmp /etc/utmp
do
# on teste si le fichier a purger existe bien
[-f "$XTMP" ] || continue
SIZE=
SIZE=$(/bin/ls -l $XTMP |awk '{print $5}' 2>/dev/null)
# si on atteint $MAX_SIZE, on purge
[ "$SIZE" -gt "$MAX_SIZE" ] && {
${FWTMP} < ${XTMP} |tail -n $REST_LINES |${FWTMP} -ic > /tmp/${XTMP##*/}
if [ "$?" = "0" ]
then
mv /tmp/${XTMP##*/} ${XTMP}
else
echo "Erreur a la purge du fichier [${XTMP}]"
fi
}
done