Ich habe ein kleines Skript für meine statische log Streichung, aber ich frage mich, ob es einen Weg, um ein dynamisches Skript. Hier ist, wie mein Skript arbeitet.
Code:
#!/bin/sh
###########################################
#Script to zip logs older than 1 week old
#and to delete logs older than 30 days old
###########################################
#
##TEST
#
cd /opt/apache/test/logs
find . -name "access_*" -type f -mtime +8 -exec gzip {} \;
find . -name "access_*.gz" -type f -mtime +31 -exec rm {} \;
find . -name "error_*" -type f -mtime +8 -exec gzip {} \;
find . -name "error_*.gz" -type f -mtime +31 -exec rm {} \;
cd /opt/apache/test1/logs
find . -name "access_*" -type f -mtime +8 -exec gzip {} \;
find . -name "access_*.gz" -type f -mtime +31 -exec rm {} \;
find . -name "error_*" -type f -mtime +8 -exec gzip {} \;
find . -name "error_*.gz" -type f -mtime +31 -exec rm {} \;
cd /opt/apache/test2/logs
find . -name "access_*" -type f -mtime +8 -exec gzip {} \;
find . -name "access_*.gz" -type f -mtime +31 -exec rm {} \;
find . -name "error_*" -type f -mtime +8 -exec gzip {} \;
find . -name "error_*.gz" -type f -mtime +31 -exec rm {} \;
echo "Script complete on `date +%D`."
Jetzt für dieses Skript, ich habe einfach zu kopieren und einen neuen Block, wenn ich eine neue Apache-Server, aber da habe ich die Verzeichnis-Struktur-und Log-Dateien sind immer die gleichen, gibt es einige, wie ich könnte in einigen Ist diese Logik auf.
Möglicherweise cd nach / opt / apache / Sie eine Liste, dann irgendwie mit einem Array und einer Schleife, um den Namen des Verzeichnisses, in einer Variablen, und verwenden Sie dann, dass die Variable, um den Befehl finden, gehen Sie die 4 Zeilen, dann wenn ein anderes Verzeichnis existiert wiederholen.