Programmerar inte i Bash men var tvungen att kika lite på det och skapade ett litet program som raderar alla loggfiler som man anger i en lista. Har man t.ex en utvecklingmaskin så blir det inte lika mycket som på en mer aktiv maskin men med åren tar de ju lite plats så jag kör detta som cronjobb en gång i kvartalet. Man väljer själv vilka filer man vill radera genom att lägga till eller ta bort i skriptet.
#!/bin/bash
#
###################################
# Variabler att redigera
#
# Ange sökväg till loggfilerna (varje fil, egen rad)
LOGFILES="
/var/log/syslog
/var/log/messages
/var/log/maillog
"
#
# Sökväg för att starta om syslogd
RESTARTSYSLOGD="kill -HUP `cat /var/run/syslogd.pid`"
#
# Slut variabler att redigera
###################################
for each_log in $LOGFILES
do
if [ -f $each_log ]
then
rm $each_log
touch $each_log
done_log=$done_log"$each_log "
else
not_done_log=$not_done_log"$each_log "
fi
done
# Starta om syslogd
$RESTARTSYSLOGD
if [ -n "$done_log" ]
then
echo ""
echo "Loggfilerna"
echo "------------------------------"
for each_done_log in $done_log
do
echo "$each_done_log"
done
echo "------------------------------"
echo "har nollställts."
echo ""
fi
if [ -n "$not_done_log" ]
then
echo ""
echo "ERROR:"
echo "Filerna"
echo "------------------------------"
for each_not_done_log in $not_done_log
do
echo "$each_not_done_log"
done
echo "------------------------------"
echo "existerar inte (kontrollera sökvägarna)."
echo ""
fi