Jeg har skrevet en mindre statisk script for min log sletning, men jeg tænkte på, om der var en måde at gøre det til en dynamisk script. her er, hvordan mit manuskript i øjeblikket arbejder.
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`."
Nu for denne særlige script, må jeg blot kopiere og indsætte en ny blok, når jeg opretter en ny Apache-server, men jeg regnede med, da den mappestruktur og logfil navne er altid den samme, vil der være en eller anden måde kunne jeg tilføje i nogle faktiske logik om dette.
Muligvis cd til / opt / Apache /, lave en liste, så en eller anden måde bruge en matrix og en løkke til at indfange navnet på hver mappe i en variabel, og derefter bruge denne variabel til at køre finde kommando, gør disse 4 linjer, så hvis en anden mappe eksisterer gentage.