Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[gelöst] Ordner löschen per Script

Alles rund um die Systemverwaltung, die Administration und Konfiguration Eures Linuxsystems

Moderator: Moderatoren

Antworten
Thommy345
Newbie
Newbie
Beiträge: 38
Registriert: 23. Dez 2006, 17:50

[gelöst] Ordner löschen per Script

Beitrag von Thommy345 » 11. Mär 2007, 10:47

Hallo zusammen,

dieses Script habe ich geschrieben und es macht auch was es soll :-)

#!/bin/sh

ORDNER_1='/server/samba/benutzer1'
ZIEL_1='/server/backup/benutzer1'

ORDNER_01='/server/samba/benutzer2'
ZIEL_01='/server/backup/benutzer2'

#----------------------------------------------------------------------------

# Ordner mit aktuellem Datum erstellen
DATUM=$(date '+%d-%m-%Y')
mkdir $ZIEL_1/$DATUM
mkdir $ZIEL_01/$DATUM

#Datei kopieren
cp -R $ORDNER_1 $ZIEL_1/$DATUM/
cp -R $ORDNER_01 $ZIEL_01/$DATUM/

# Ordner älter als xTage löschen
find $ZIEL_1 -type d -mtime +6 -exec rm -rf {} \;
find $ZIEL_01 -type d -mtime +6 -exec rm -rf {} \;

# ende des Scripts

Ordner die älter sind als xTage werden auch immer schön gelöscht, aber ich bekomme auch immer eine email mit etwa diesem Text:

find: /server/backup/benutzer1/04-03-2007: No such file or directory
find: /server/backup/benutzer1/03-03-2007: No such file or directory
find: /server/backup/benutzer2/04-03-2007: No such file or directory
find: /server/backup/benutzer2/03-03-2007: No such file or directory

Kann sein das dieses Script etwas umständlich geschrieben ist, aber ich lerne noch :D
Hat jemand einen Tipp für mich wo der Fehler liegt?

Gruß
Thommy345
Zuletzt geändert von Thommy345 am 13. Mär 2007, 20:04, insgesamt 1-mal geändert.

Werbung:
abgdf
Guru
Guru
Beiträge: 3073
Registriert: 13. Apr 2004, 21:15

Beitrag von abgdf » 11. Mär 2007, 17:57

Hi,

probier doch mal statt

Code: Alles auswählen

find $ZIEL_1 -type d -mtime +6 -exec rm -rf {} \;

Code: Alles auswählen

a=$(find $ZIEL_1 -type d -mtime +6)
rm -rf $a
(Vielleicht, bevor Du wirklich mit "rm -rf" da bei gehst, erstmal mit "echo" ausgeben, was Du da löschen willst ...).

Und bitte benutze doch die Code-Tags (

Code: Alles auswählen

, [/cod] mit e).

Gruß

Thommy345
Newbie
Newbie
Beiträge: 38
Registriert: 23. Dez 2006, 17:50

Beitrag von Thommy345 » 13. Mär 2007, 15:37

Cool funktioniert !

Danke :D

abgdf
Guru
Guru
Beiträge: 3073
Registriert: 13. Apr 2004, 21:15

Beitrag von abgdf » 13. Mär 2007, 18:10

Prima, der Grund dürfte Dich dann auch interessieren:
Ich schätze, "find" wird in einer Subshell ausgeführt, der exec-Teil wahrscheinlich in einer weiteren.
Bei "find .... exec rm" löscht die untere Subshell das, was die obere zu finden versucht.
Also erst alles finden lassen, das einer Variable zuweisen und dann alles löschen lassen.

Viele Grüße

Thommy345
Newbie
Newbie
Beiträge: 38
Registriert: 23. Dez 2006, 17:50

Beitrag von Thommy345 » 13. Mär 2007, 19:27

Hi, auf die Idee mit einer Variablen muß man erst mal kommen...

Danke nochmal :lol:

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste