Gezieltes löschen von Dateien

Hawky

Mitglied
Code:
#!/bin/sh
VERZ="ftmp/Bahnhof2/2004/"
alterMONAT=`date -d '1 month ago' +%B`
for X in `ls -lR $VERZ`
do
	if [ $X == $alterMONAT ]
	then
		#rm -R $X
		#touch $X.txt
		# alten monat gefunden, also loeschen
		echo "$X kann man loeschen"
	fi
done

Das sind Backticks und keine Singlequotes
das # is auch drin.

Fehler:
: bad interpreter: No such file or directory

also irgendwas is da net ganz ok?!

SH:
/home/script# which sh
/bin/sh
 

Hawky

Mitglied
lag am editor unter vi hat man gesehen das da zeichen drinne waren die da nix zu suchen hatten und jetzt gehts, bringt zwar noch nicht das was ich will, aber es geht zumindestens mal
 

Hawky

Mitglied
#!/bin/sh
VERZ="ftmp/Bahnhof1/2004/"
aktuellerMonat=`date -d '1 days ago' +%B`
for Z in `ls -lR $VERZ`
do
if [ $Z == $aktuellerMonat ]
then
$aktuellerMonat == $aktuell
fi
done

VERZ_2="ftmp/Bahnhof1/2004/$aktuell/"
alterTAG = `date -d '2 days ago' +%B`
for Y in `ls -lR $VERZ_2`
do
if [ $Y == alterTAG ]
then
#rm -R $Y
touch $Y.txt
fi
done

Hier hab ich versucht zwei dinge zu verbinden, allerdings bin ich mir nicht ganz sich er was
das angeht. Ich vermute mal das funktioniert nicht so wie ich mir das denke! Ich brauch halt bei der Pfadangabe ne variable, weil die ordner sich ändern, weil immer neue hnzukommen und die alten gelöscht werden sollen. wäre nett wenn ich da auch noch ne Hilfestellung bekomme!
 

imweasel

Erfahrenes Mitglied
Hi,

also wenn das bei dir mit der Schleife nicht hinhaut gibt es noch eine Alternative
Code:
#!/bin/sh

# Ordner zum durchsuchen bestimmen
ORDNER="Ordner1/"
# vergangenen Monat bestimmen
ALTERMONAT=`date -d '1 month ago' +%B`
# Order nach altem Monat durchsuchen und ggf. loeschen
rmMONAT=`find $ORDNER -name $ALTERMONAT -type d`
rm -rf $rmMONAT
# den Ordner von Vorgestern finden und ggf loeschen
VORGESTERN=`date -d '2 days ago' +%d`
rmTAG=`find $ORDNER -name $VORGESTERN -type d`
rm $rmTAG

Das Scripte solltest du dann noch mit
Code:
chmod a+x SCRIPTNAME
ausführbar machen.

Pack das ganze in einen Cron und lasse es z.B. um 00:05Uhr laufen. Dann wird wird (wenn vorhanden) der Ordner aus dem Vormonat und der Ordner von Vorgestern (wenn vorhanden) rekursiv gelöscht.