Hallo,
erst einmal freue ich mich, nun dieser Community anzugehören.
Nun zu meiner Frage:
Ich erstelle mittels Cron jede Woche ein automatisches Backup. Dieses Backup wird in ein extra Verzeichnis geschoben. Bei jedem Backup wird eine neue Datei angelegt.
Nunmöchte ich ein Skript schreiben, welches in dem besagten Verzeichnis prüft, ob mehr als 3 Dateien vorhanden sind. Wenn ja, dann soll das Programm alle Daten die älter als 3 Wochen sind löschen. Aber ich bekomme das Programm nicht richtig hin.
cd /Verzeichnis...
vers=find -type f | wc -l; #An der Stelle wird geprüft, wie viele Einträge das Verzeichnis hat
if test $vers -gt 3; then # Prüfung, ob größer 3
find -mtime +21 -exec rm{} \; #wenn ja, dann lösche die Daten, die älter als 3 Wochen sind
fi
Ich denke, dass die Variablenzuweisung nicht funktioniert., bzw, dass ich die Syntax vermasselt habe.
Bei der if-Anweisung bekomme ich immer die Fehlermeldung, dass für -gt ein monärer operatort erwartet wird.
Kann mir da bitte jemand helfen?
Gruss Helios
Frage zur Syntax der BASH
Willkommen im Forum!
wenn du das Ergebnis eines Kommandos einer Variablen zuweisen möchtest, solltest du eine der folgenden Varianten verwenden:
wenn du das Ergebnis eines Kommandos einer Variablen zuweisen möchtest, solltest du eine der folgenden Varianten verwenden:
Code: Alles auswählen
vers=$(find -type f | wc -l)
vers=`find -type f | wc -l`