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

Dateien verschieben in Datumsordner

Frage Entwicklung Batch & Shell

Mitglied: zero5liters

zero5liters (Level 1) - Jetzt verbinden

21.09.2011, aktualisiert 13:36 Uhr, 3742 Aufrufe, 14 Kommentare

Hallo, ich versuche eine mir vorgegebene Sicherungslösung zu verbessern/verschönenern.

Ich habe einen Server auf dem werden täglich Daten von mehreren Geräten gesichert. Zu meinem Leidwesen sicherheitshalber die Daten der letzten 3 Tage. Diese werden in einen Tagesscontainer geschrieben. Leider nur nicht in den jeweils zugehörigen Ordner, sondern in den Tagescontainer/Ordner von dem Tag an dem die Sicherung läuft.

Beispiel:

Ordner1 von heute 21.09.2011 darin enthalten sind die Dateien "Ordner1_Sicherung_19092011",""Ordner1_Sicherung_20092011","Ordner1_Sicherung_21092011"

Hier mal die Ordnerstruktur:

Workstation1-n
-Jahr
-Monat
-Tag
-Ordner1
-Datei1(Dateiname beginnt immer genauso wie der Ordnername)
-Ordner2
-Datei2
-Ordner_n
-Datei_n

An der Sicherung kann ich leider nicht drehen, die kommt von extern. Derzeit lösche ich die Dateien die nicht in den Ordner gehören von Hand raus und zippe den Tagescontainer. Aber das müsste man doch mit einer Batch lösen können. Ich habe eine ungefähre Vorstellung (Batchlaie) wie ich das für einen Tagescontainer lösen könnte. Aber mir fehlt jegliche Vorstellungskraft wie ich das aus der root machen müsste.

Vielleicht hat ja jemand eine Idee. Wäre echt cool wenn ich mir die Arbeit (täglich von Hand lsöchen/verschieben) sparen könnte.

Mit freundlichen Grüßen
zero


So hier dann mal ein Bild der Ordnerstruktur fd9fa7f607250b72d9c9e27a5fa4623a - Klicke auf das Bild, um es zu vergrößern damit es ein wenig einleuchtender ist. Bin leider ne 0 im Erklären.
Die Dateien die im Ordner "Anwendung1" liegen sollen nach Möglichkeit nach Datum in die jeweils passenden Tagesordner wegsortiert (move & overwrite) oder gelöscht werden.
Also die Datei "Anwendung1_*" vom 19.09. (anhand des Änderungsdatums) soll in den Ordner Workstation\Jahr\Monat\Tag (Workstation1\2011\09\19\Anwendungs1) verschoben werden.
Der Ordner "Backup" stellt die Freigabe dar ...

Hoffe damit könnt ihr mehr anfangen.

thx in advance
Mitglied: pieh-ejdsch
21.09.2011 um 12:31 Uhr
moin zero,

also nach dem drittenmal Durchlesen ...
soll nun was genau geschehen?

alles was nicht mit "Odner_Sicherung_DatumNichtvonHeute" endet soll gelöscht werden?
Ja ich wart dann mal vorher auf Food aeähm Feedback.

Gruß Phil
Bitte warten ..
Mitglied: Skyemugen
21.09.2011 um 12:35 Uhr
Aloha Phil,

ich habe es eher so verstanden, dass er Sicherungsordner von einigen Geräten hat (allerdings kP wo die genau liegen)

z.B. Ordner1, Ordner 2 etc.

Und dort liegen gesicherte Dateien der letzten drei Tage.

Diese sollen dann, je nach Datum entsprechend, in ihre jeweiligen Ordner geschoben werden, denke ich.

Also Ordner1\Ordner1_Sicherung_19092011.xyz soll zu Workstation1-n\2011\09\19\Ordner1\Ordner1_Sicherung_19092011.xyz etc. pp.

nunja, erstmal Mahlzeit

greetz André
... wobei, beim vierten Mal durchlesen, bin ich mir doch unsicher, ob die Ordnerstruktur nicht doch die gesicherten Daten enthält, wobei ich dann nicht weiß, was er will
Bitte warten ..
Mitglied: zero5liters
21.09.2011 um 13:28 Uhr
Zum Bild: also es fehlen natürlich weitere Monate, Tage, Workstations und Anwendungen das ist nur um mal die Struktur aufzuzeigen
Bitte warten ..
Mitglied: Skyemugen
21.09.2011 um 13:50 Uhr
Aloha,

ja was denn nun:

Die Dateien die im Ordner "Anwendung1" liegen sollen nach Möglichkeit nach Datum in die jeweils passenden Tagesordner wegsortiert (move & overwrite) oder gelöscht werden

entscheide dich bitte, wenn die nicht-von-heute-Dateien unwichtig sind, fliegen sie raus, bumm! Ist nämlich auch das Einfachste und könnte z.B. so ablaufen:
Ausgehend davon, dass das Skript heute mit dem Datum von heute und vorhandenen Dateien von heute arbeitet (dass ich mit heute nicht unbedingt den 21.September 2011 meine, dürfte klar sein *gg*)
01.
@echo off & setlocal 
02.
set "Pfad=K:\Backup\Workstation1\%date:~-4%\%date:~3,2%\%date:~0,2%" 
03.
set "Datum=%date:.=% 
04.
for /f "delims=" %%s in ('dir /B /S /A-D "%Pfad%"^|findstr /V %Datum%') do echo del "%%s" 
05.
pause 
06.
goto :eof
das echo in Zeile 04 dient der Voransicht, wenn du es entfernst, geht der Code knallhart zur Sache

greetz André
edit:
Also die Datei "Anwendung1_*" vom 19.09. (anhand des Änderungsdatums) soll in den Ordner Workstation\Jahr\Monat\Tag (Workstation1\2011\09\19\Anwendungs1) verschoben werden.

Entscheide dich!
Bitte warten ..
Mitglied: pieh-ejdsch
21.09.2011 um 13:51 Uhr
aus dem Bauch raus würde ich sagen die Backups der zwei anderen Dateien im Ordner können gelöscht werden, da diese ja in einem anderen DatumsOrdner enthalten sind.

Ungetestet! Bitte Testdaten Verwenden. etwa so
01.
@echo off 
02.
setlocal 
03.
set "BackupFolder=K:\Backup" 
04.
 
05.
for /r "%BackupFolder%" %%i in (*) do for /f "tokens=3-6delims=\" %%j in ("%%i") do echo "%%~ni"| findstr "_%%l%%k%%j." >nul || del "%%i"
Gruß Phil
Bitte warten ..
Mitglied: zero5liters
21.09.2011 um 14:18 Uhr
Hi - danke schon mal. Das mit dem Verschieben/Löschen ist so ne Sache. Denn eigentlich wäre löschen schon ok. ABER: derzeit wenn ich das händisch machen muss und mal nicht aufpasse und mir der Speicher voll läuft dann schreibt er eben keine Daten mehr in den Ordner. Räume ich dann wieder auf und schaffe Platz. Bekomme ich vom Server die Sicherungen der letzten Tage und verschiebe die dann einfach in die passenden Tage.
Wobei ja wenn die Batch so arbeitet wie sie soll läuft mir ja auch nicht mehr der Speicher voll. Also können wir getrost bei löschen bleiben.

Noch ne blöde Frage zum Schluss. Wie müsste ich denn den Code bearbeiten das ich das ganze aus der "root" starten kann. Denn die Workstations stehen natürlich mit Ihren echten PC-Namen da und heißen nicht einfach 1-2-3 sondern haben ihrer Funktion nach eigene Namen. Genauso wie die Anwendungen/Anwendungsordner.
Bitte warten ..
Mitglied: pieh-ejdsch
21.09.2011 um 14:38 Uhr
zum schluss antworten wir immer nur blöd wenns blöde Fragen gibt.
Ne zum schluss sagen wir tschü.

beim Script von André trägst Du bei Pfad nur K:\Backup ein
ach ne geht ja nicht da muss eine Unteroutine rein oder eine extra Vor-Forschleife gebastelt werden.
wenn Du das jeden tag startest nimmste dieses Script

für den Anfang um wirklich alle Doppelten Daten zu löschen nimmste das von mir.

Gruß Phil
Bitte warten ..
Mitglied: zero5liters
21.09.2011 um 15:10 Uhr
Ja cool - danke geht 1A. Herzlichen Dank.
Zu André´s Script hab ich noch ne Frage. Was bedeuten die "Parameter" dieser Zeile?:

"for /f "delims=" %%s in ('dir /B /S /A-D "%Pfad%"^|findstr /V %Datum%') do echo del "%%s" "

Will ja nicht nur copy/pasten - würds ja gern auch verstehen.

thx
Bitte warten ..
Mitglied: Skyemugen
21.09.2011 um 15:23 Uhr
Aloha,

es war einmal eine Schleife, die durfte nichts trennen, dafür aber in der Suche-nach-Dateien-in-allen-Unterordnern-von-%Pfad%-aus die Funde mit dem %Datum% rauswerfen und nur die restlichen Treffer ausgeben (und ggf. löschen, wenn man denn so wollte)
for /?
dir /?
findstr /?

greetz André
Bitte warten ..
Mitglied: zero5liters
21.09.2011 um 15:48 Uhr
ok - habe mal brain.exe neugestartet und schon ist das Verständnis gleich größer.

Wenn ich das jetzt richtig verstehe löschts die Dateien die im Dateinamen ungleich des Ordner-Datums sind - oder?
Bitte warten ..
Mitglied: Skyemugen
21.09.2011 um 15:55 Uhr
Aloha,

rein technisch gesehen, löscht er die Daten, deren Dateinamenbestandteil ungleich dem aktuellen Datum ist (was natürlich auch der Ordnerstruktur an dem Tag entspricht)

greetz André
Bitte warten ..
Mitglied: zero5liters
21.09.2011 um 16:03 Uhr
Könntest Du mir bitte noch nen Tip geben wie ich es statt auf den Dateinamen auf das Änderungsdatum jagen kann.
Bitte warten ..
Mitglied: Skyemugen
21.09.2011 um 16:21 Uhr
Aloha,

01.
for /f "delims=" %%s in ('dir /B /S /A-D "%Pfad%"') do ( 
02.
	echo %%~ts |findstr /V %date%>nul && echo del "%%s" 
03.
)
du meinst so?

greetz André

zur Erklärung:

für jede gefundene Datei wird das Änderungsdatum per echo ausgeben und dann wie gehabt per findstr gefiltert und nur der passende Treffer wird dann auch (sofern man will) gelöscht
Bitte warten ..
Mitglied: zero5liters
22.09.2011 um 09:57 Uhr
Super - danke. Das hilft mir deutlich weiter - als meine möchtegern Batches.
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...