Gzip aller Dateien ab einem bestimmten Zeitraum
Hallo allen Community Mitglieder
Ich habe eine Frage betreffend gzip
Ich möchte aus einem Bestimmten Verzeichnis z.B /var/log alles Logs weche mit localhost_access_log* beginnen und älter sind 14 Tage, mit gzip comprimieren. Anschliessend sollen die gezippten logdateien gelöscht werden (älter als 14 Tage)
Wer kann mir da eine Lösung geben?
Im Voraus Danke für die Hilfe
Ich habe eine Frage betreffend gzip
Ich möchte aus einem Bestimmten Verzeichnis z.B /var/log alles Logs weche mit localhost_access_log* beginnen und älter sind 14 Tage, mit gzip comprimieren. Anschliessend sollen die gezippten logdateien gelöscht werden (älter als 14 Tage)
Wer kann mir da eine Lösung geben?
Im Voraus Danke für die Hilfe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 8046062064
Url: https://administrator.de/contentid/8046062064
Ausgedruckt am: 19.11.2024 um 06:11 Uhr
11 Kommentare
Neuester Kommentar
Funktioniert irgendwie nicht richtig
Dann machst du es falsch.Deswegen habe ich mich entschieden ein eigenes Skript zu schreiben
Wohl eher es "schreiben zu lassen" 😂find /var/log -type f -name "localhost_access_log*" -mtime +14 | tar czf old.tar.gz -T -
find /var/log -type f -name "localhost_access_log*" -mtime +14 -delete
gzip $(find /var/log -type f -name "localhost_access_log*" -mtime +14)
S.
ChatGPT
#!/bin/bash
# Verzeichnis, in dem die Dateien liegen
log_dir="/var/log"
# Aktuelles Datum in Sekunden seit der Epoch (UNIX-Timestamp)
current_date=$(date +%s)
# Anzahl der Sekunden in 14 Tagen (60 Sekunden * 60 Minuten * 24 Stunden * 14 Tage)
fourteen_days_ago=$((current_date - 60*60*24*14))
# Schleife durch alle Dateien im Verzeichnis, die mit "localhost_access_log" beginnen
for file in "$log_dir"/localhost_access_log*; do
# Überprüfen, ob die Datei älter als 14 Tage ist
if [ -f "$file" ] && [ "$(date -r "$file" +%s)" -lt "$fourteen_days_ago" ]; then
# Gzip-Komprimierung durchführen
gzip "$file"
echo "Komprimiere Datei: $file"
# Die komprimierte Datei löschen
rm "$file"
echo "Lösche Datei: $file"
fi
done
Ist zwar nett, aber wie immer wurde die Aufgabenstellung nicht ganz durchgelesen, respektive das Result nicht genau betrachtet.
Der wichtige Punkt welche Dateien behandelt werden sollen, ist in der vermeintlichen Lösung nicht abgedeckt!
grüße
Zitat von @godlie:
Ist zwar nett, aber wie immer wurde die Aufgabenstellung nicht ganz durchgelesen, respektive das Result nicht genau betrachtet.
Der wichtige Punkt welche Dateien behandelt werden sollen, ist in der vermeintlichen Lösung nicht abgedeckt!
grüße
Ist zwar nett, aber wie immer wurde die Aufgabenstellung nicht ganz durchgelesen, respektive das Result nicht genau betrachtet.
Der wichtige Punkt welche Dateien behandelt werden sollen, ist in der vermeintlichen Lösung nicht abgedeckt!
grüße
na das erkläre mal ein wenig genauer
@Kraemer
Ich möchte aus einem Bestimmten Verzeichnis z.B /var/log alles Logs weche mit localhost_access_log* beginnen ....
grüße
Ich möchte aus einem Bestimmten Verzeichnis z.B /var/log alles Logs weche mit localhost_access_log* beginnen ....
grüße