Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Backuproutine

Frage Entwicklung Batch & Shell

Mitglied: fstueber

fstueber (Level 1) - Jetzt verbinden

10.04.2007, aktualisiert 15:32 Uhr, 3767 Aufrufe, 13 Kommentare

Suche Script oder Programm

Hallo Leute,
Suche Script oder Programm für Backuproutine (Windows/Linux)
In einem Backup-Ordner werden jeden Tag 2 Backupdateien (z. B: 2007-Mrz-31--1547.zip). Die letzte Zahl ist die Uhrzeit der 2. Sicherung.
Nun soll an jedem Monatsende jeweils die letzte Backupdatei in ein Verzeichnis „Archiv“ (Backup-Ordner) kopiert/verschoben werden. Der Rest der Dateien soll gelöscht werden.

Vielen Dank im voraus

fstueber
Mitglied: cykes
10.04.2007 um 09:53 Uhr
Hi,

auf welchem System soll denn das Script laufen, Windows oder Linux?

Gruß

cykes
Bitte warten ..
Mitglied: fstueber
10.04.2007 um 09:59 Uhr
Hi,

momentan läuft es noch unter Windows2000Server. Wird aber demnächst auf einem Linux (Fedora6) installiert.

Gruß

fstueber
Bitte warten ..
Mitglied: bastla
10.04.2007 um 10:47 Uhr
Hallo fstueber!

Für momentan hätte ich folgenden Ansatz:
01.
@echo off & setlocal 
02.
set "BackupDir=D:\Backups" 
03.
set "ArchivDir=Z:\Archiv" 
04.
set Neueste= 
05.
for /f "delims=" %%i in ('dir "%BackupDir%\*.zip" /b /a-d /o-d') do if not defined Neueste set "Neueste=%%i" 
06.
echo move "%BackupDir%\%Neueste%" "%ArchivDir%" && echo del "%BackupDir%\*.zip" || echo Fehler beim Verschieben von %Neueste%
Die ersten beiden "echo" in der letzten Zeile sorgen dafür, dass der Ablauf nur simuliert wird - erst, wenn Du sie entfernst, wird wirklich verschoben und gelöscht.

Grüße
bastla
Bitte warten ..
Mitglied: bastla
10.04.2007 um 11:35 Uhr
... Nachtrag: Sollte ich Dich vorhin falsch verstanden haben und es soll von den beiden täglichen Sicherungsdateien jeweils die jüngere archiviert werden, müsste das anhand des Dateinamens so gehen:
01.
@echo off & setlocal 
02.
set "BackupDir=D:\Backups" 
03.
set "ArchivDir=Z:\Archiv" 
04.
set Zuletzt=NA 
05.
for /f "delims=" %%i in ('dir "%BackupDir%\*.zip" /b /a-d /o-n') do call :ProcessFile "%%i" 
06.
::nächstes "echo" löschen 
07.
echo del "%BackupDir%\*.zip" 
08.
goto :eof 
09.
:ProcessFile 
10.
for /f "delims=--" %%f in ('echo %~n1') do ( 
11.
	if /i "%%f"=="%Zuletzt%" goto :eof 
12.
	set "Zuletzt=%%f" 
13.
	::nächstes "echo" löschen 
14.
	echo move "%BackupDir%\%~1" %ArchivDir% || echo Fehler beim Verschieben von %~1 
15.
)
Vorausgesetzt wird, dass im Dateinamen (wie in Deinem Beispiel oben) die Uhrzeit durch "--" vom Tag getrennt ist.

Auch hier gilt wieder: Die beiden gekennzeichneten "echo" löschen, um die Aktionen tatsächlich ausführen zu lassen.

Grüße
bastla
Bitte warten ..
Mitglied: fstueber
10.04.2007 um 13:00 Uhr
Hi bastla,

vielen Dank für das Script, werde es testen.

Gruß

fstueber
Bitte warten ..
Mitglied: fstueber
10.04.2007 um 13:29 Uhr
Hi bastla,

habe einen Test durchgeführt. Ich bekomme einen Syntaxfehler zurück.

Gruß

fstueber
Bitte warten ..
Mitglied: bastla
10.04.2007 um 13:54 Uhr
Hallo fstueber!

Im Allgemeinen verkrafte ich auch mehr Informationen in einem Post, als nur "Ich bekomme einen Syntaxfehler zurück."

Unter der Annahme, dass Du Dich auf die zweite Batchvariante beziehst, sollte es so besser gehen:
01.
@echo off & setlocal 
02.
set "BackupDir=D:\Backups" 
03.
set "ArchivDir=D:\Archiv" 
04.
set Zuletzt=NA 
05.
for /f "delims=" %%i in ('dir "%BackupDir%\*.zip" /b /a-d /o-n') do call :ProcessFile "%%i" 
06.
::nächstes "echo" löschen 
07.
echo del "%BackupDir%\*.zip" 
08.
goto :eof 
09.
:ProcessFile 
10.
for /f "tokens=1,2,3 delims=-" %%f in ('echo %~n1') do ( 
11.
    if /i "%%f-%%g-%%h"=="%Zuletzt%" goto :eof 
12.
    set "Zuletzt=%%f-%%g-%%h" 
13.
    ::nächstes "echo" löschen 
14.
    echo move "%BackupDir%\%~1" %ArchivDir% || echo Fehler beim Verschieben von %~1 
15.
)
Grüße
bastla

P.S.: Sorry, hatte mich beim Testen nur auf die Trennung Tag-Zeit konzentriert ...

[Edit] Unnötige Variable entfernt [/Edit]
Bitte warten ..
Mitglied: fstueber
10.04.2007 um 14:17 Uhr
Hi bastla.

noch einmal ganz kurz. Wenn ich die erste Zeile auskommentiere, sieht das Ergebnis so aus:

D:\>set "BackupDir=D:\Backups"

D:\>set "ArchivDir=D:\Backups\Archiv"

D:\>set Zuletzt=NA

D:\>for /F "delims=" %i in ('dir "D:\Backups\*.zip" /b /a-d

D:\>call :ProcessFile "2007-Mrz-31--1416.zip"
Syntaxfehler.

D:\>for /f "delims=--" %f in ('echo 2007-Mrz-31--1416')

die letze Datei wird gefunden.
Bitte warten ..
Mitglied: bastla
10.04.2007 um 14:24 Uhr
Hallo fstueber!

Nimm bitte zum Testen nochmals die letzte von mir gepostete Variante.

Grüße
bastla
Bitte warten ..
Mitglied: fstueber
10.04.2007 um 14:25 Uhr
Hi bastla,

sorry wegen der spärlichen Info.
Allles besten und vielen Dank.

fstueber
Bitte warten ..
Mitglied: bastla
10.04.2007 um 14:29 Uhr
Hallo fstueber!

Never mind ... (Hab heute nicht den besten Tag, sonst wäre es vielleicht gar nicht nötig gewesen, Fehlerberichte zu posten.)

Grüße
bastla
Bitte warten ..
Mitglied: fstueber
10.04.2007 um 14:31 Uhr
Hallo bastla,

die e-Mails haben sich überkreuzt.
Vielen Dank für Deine kompetente und schnelle Hilfe.

Grüße
fstueber
Bitte warten ..
Mitglied: Biber
10.04.2007 um 15:32 Uhr
Moin fstueber,

wollen wir jetzt
a) den Beitrag auf "gelöst" setzen? DONE by fstueber 10.4.2007...
b) den Beitrag auf "geschlossen" setzen? DONE by Biber 11.4.2007
c) den Beitrag offen lassen und weitermachen, wenn Dein Linux-Server da ist? Gestrichen 11.4. Biber
d) oder dann einen neuen Thread aufmachen?
e) alles nach "Batch und Shell" verschieben? DONE by Biber 10.4.2007

Mehrfachnennungen möglich, aber nicht alle Kombinationen kann ich umsetzen...

Gruss
Biber
[Edit] 11.4. Mögliche Optionen etwas weiter eingeschränkt *gg und Thread geschlossen [/Edit]
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...