Here is a script that removes the oldest entries in the /var/adm/wtmp file, but keeps a reasonable history:
#!/bin/sh
/usr/sbin/acct/fwtmp < /var/adm/wtmp | tail -25000 > /tmp/wtmp.ascii.new
if [ "$?" != 0 ]
then
echo "$0" "Error extracting wtmp file"
exit
fi
/usr/sbin/acct/fwtmp -ic < /tmp/wtmp.ascii.new > /var/adm/wtmp
if [ "$?" != 0 ]
then
echo "$0" "Error recompressing wtmp file"
exit
else
rm /tmp/wtmp.ascii.new
fi
This could be done on in a one-liner, but this gives a little more feedback if it fails, which I’ve never actually seen.