Linux/Windows Datensicherungs-Script Hilfe

Deichgraf
Hallo zusammen,

ich brauch bitte mal ein wenig Hilfe bei einem Linux-Datensicherungs Script.

Jede Nacht läuft dieses Script und sichert auf unserem kleinen Rootserver mal eben 80GB im eigenen Netzwerk...

Soweit funktioniert das Script auch, leider löscht es die alte Datensicherung nicht, nach den vorgegebenen 4 Tagen, und ich finde den Fehler nicht. Kann da mal wer drüber gucken?

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
#!/bin/bash

### Datum setzen ###
myDate=`date +%Y%m%d`

### Ins Temp-Verzeichnis wechseln ###
cd /home/deichgraf/sicher_temp

### Zu sichernde Daten mit Tagesdatum im Namen zippen ###
zip -r mysql_backup_$myDate.zip /home/deichgraf/mysql_backup

### Ziel-Server Laufwerk mounten ###
mount -t cifs //192.168.0.11/Dokumente/Linuxserver_Datensicherung /mnt/Linuxserver_Datensicherung -o username=root,password=was-weiss-ich-was

### Backup löschen wenn älter als X Tage (X=4) ###
find /mnt/Linuxserver_Datensicherung -name '*.zip' -mtime +4 -exec rm {} \;

### Das ZIP File kopieren ###
cp /home/deichgraf/sicher_temp/mysql_backup_$myDate.zip /mnt/Linuxserver_Datensicherung/mysql_backup_$myDate.zip

### Windows Laufwerk aus Sicherheitsgründen unmounten ###
umount /mnt/Linuxserver_Datensicherung

### Zip File hier löschen, nach kopieren! ###
rm mysql_backup_$myDate.zip



Es geht um diese Zeile:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
### Backup löschen wenn älter als X Tage (X=4) ###
find /mnt/Linuxserver_Datensicherung -name '*.zip' -mtime +4 -exec rm {} \;



Diese sucht normalerweise Dateien die älter sind als 4 Tage und löscht diese. In einer reinen Linuxumgebung funktioniert das auch, aber -warum auch immer- auf dem gemounteten Laufwerk tut es das nicht. Ich hab keine Ahnung warum... das gemountete Zielsystem ist ein Windows Server 2008 R2 und das Laufwerk ist NTFS formatiert...

Hat jemand eine Idee warum und wie ich das Script anpassen muss, damit es funktioniert?

Danke
Deichi
Deichgraf
OK, scheint geklärt... mit dem Befehl "find" werd ich nichts auf einem Netzwerk-Mount, besonders dann nicht, wenn das Ziellaufwerk NTFS formatiert ist...

Nu muss ich mir erstmal was ausdenken, wie ich es hinkriege, das er ältere Daten löscht, bevor er die nächste Rutsche dahin kopiert...
Deichgraf
So, problem gelöst!

- Programm "FORFILES.exe" von Microsoft (!) auf dem Windows Server installieren.
- *.bat Datei mit folgendem Inhalt erstellen:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
FORFILES -p D:\ServerFolders\Dokumente\Linuxserver_Datensicherung -d -3 -m *.zip -c "CMD /C del @FILE"


- Einfache Aufgabeplanung auf dem Server hinzufügen

Fertsch Augenzwinkern

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
FORFILES -p D:\ServerFolders\Dokumente\Linuxserver_Datensicherung -d -3 -m *.zip -c "CMD /C del @FILE"



-p [Pfad]
-d [Date]
-3 [3 Tage]
-m [Mask] (hier *.zip)
-c [Command] (hier ”CMD /C del @FILE” (mit "") del kann zum Test erst durch echo ersetzt werden)

Nun sucht der Windows Server im vorgegebenen Verzeichnis nach allen ZIP Files die älter sind als 3 Tage und löscht diese.

Eigentlich hätte ich es lieber komplett mit Linux gelöst, aber man kennt ja M$... da funzt eben nicht alles grosses Grinsen

Wenn ihr das so benutzt, bitte testet ausgibig! Ich übernehme keine Haftung! Bei mir jedenfalls funktioniert es so...

Mehr Info zu FORFILES HIER