webForumDet fria alternativet

Bash - Rotera flera loggfiler samtidigt

1 svar · 2 884 visningar · startad av FlashX

FlashXMedlem sedan nov. 19991 033 inlägg
#1

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
ViktorMedlem sedan aug. 20021 752 inlägg
#2

Tråd flyttad från "Script - Övrigt".

/Viktor

139 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)