Ich habe eine .bat-Datei S: \ BACKUP_db \ copytofileserver.bat, die einige Dateien nimmt und sie auf das Netzlaufwerk komprimiert. Der erste Befehl besteht darin, die alte Sicherung unter einem bestimmten Netzwerkpfad zu löschen und die Dateien in den Ordner S: \ BACKUP_db zu packen. Sehen:
echo ================================================== >> log.txt
echo %date%, %time%: Backup started >> log.txt
set dow=%date:~0,3% >> log.txt
echo %time%: deleting existing backup... >> log.txt
del /F /S /Q /A "\\192.168.1.249\homes\backup\%dow%.7z" >> log.txt
echo %time%: OK >> log.txt
echo %time%: packing and saving new backup... >> log.txt
if exist *.Backup S:\BACKUP_db\7za a -t7z -mx=1 "\\192.168.1.249\homes\backup\%dow%.7z" S:\Backup_db\*.Backup -m0=BCJ2 -m1=LZMA:d23 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1 -mb0s1:2 -mb0s2:3 >> log.txt
echo %time%: OK >> log.txt
echo %time%: deleting local backup files... >> log.txt
del /F /S /Q /A S:\backup_db\*.Backup >> log.txt
echo %time%: OK >> log.txt
echo %date%, %time%: Backup finished >> log.txt
Wenn ich diese .bat-Datei manuell starte, funktioniert sie wie ein Zauber (die Datei ist sehr groß, ca. 50 GB, wenn sie komprimiert ist, ca. 5 GB). löscht Dateien im Netzwerk, bleibt aber während der Ausführung von 7zip immer hängen. Der Windows-Scheduler gibt als letztes Ausführungsergebnis 0x41306 an.
Die Einstellungen der Windows-Scheduler-Task scheinen korrekt zu sein: Nur ausführen, wenn der Benutzer angemeldet ist, "Mit höchsten Berechtigungen ausführen" macht keinen Unterschied usw.
Seltsamerweise hat es früher funktioniert, jetzt bleibt es hängen und ich habe keine Ahnung warum. Manchmal wird eine 16-MB-ZIP-Datei am Netzwerkziel erstellt, manchmal eine 2-GB-Datei, die zufällig zu sein scheint.
zweite Runde: Nun, das ist jetzt passiert. Ich habe die bat-Datei so eingestellt, dass sie zur angegebenen Zeit ausgeführt wird, und habe bei der Ausführung meiner Befehle ein schwarzes Fenster beobachtet. Es stürzte erneut ab, die Datei wurde erstellt: "\ 192.168.1.249 \ homes \ qi \ BackupQIostra \ po .7z", es hat 0,6 GB, es sollen mindestens 5 GB sein. Auch in der bat-Datei habe ich alle lokalen Pfade wie vorgeschlagen durch "% ~ dp0" ersetzt, keine Änderung. Protokolldateiausgabe:
==================================================
po 04. 08. 2014, 11:00:00,40: Backup started
11:00:00,44: deleting existing backup...
Deleted file - \\192.168.1.249\homes\backup\po .7z
11:00:00,49: OK
11:00:00,50: packing and saving new backup...
danach starte ich die .bat Datei per Doppelklick und beobachte was passiert
==================================================
po 04. 08. 2014, 11:37:37,60: Backup started
11:37:37,61: deleting existing backup...
Deleted file - \\192.168.1.249\homes\backup\po .7z
11:37:37,63: OK
11:37:37,63: packing and saving new backup...
7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Scanning
Creating archive \\192.168.1.249\homes\backup\po .7z
Compressing 20225_20140804030000 - Copy.Backup
Compressing 20225_20140804030000.Backup
Everything is Ok
12:53:59,52: OK
12:53:59,52: deleting local backup files...
Deleted file - S:\BACKUP_db\20225_20140804030000 - Copy.Backup
Deleted file - S:\BACKUP_db\20225_20140804030000.Backup
12:54:02,18: OK
po 04. 08. 2014, 12:54:02,18: Backup finished
quelle
Antworten:
Es scheint, als ob die Aufgabe an hstart utility delegiert wurde, um das Problem zu lösen. Es ist eine Art Workaround und ich habe keine Möglichkeit mehr, Feedback von 7zip zu erhalten, aber die bat-Datei funktioniert jetzt einwandfrei und erledigt die Aufgabe.
also habe ich das ersetzt: Wenn vorhanden * .Backup% ~ dp0 \ 7za a -t7z -mx = 1 "\ 192.168.1.249 \ homes \ qi \ BackupQIostra \% dow% .7z"% ~ dp0 * .Backup -m0 = BCJ2 -m1 = LZMA: d23-m2 = LZMA: d19-m3 = LZMA: d19-mbO: 1-mbOs1: 2-mbOs2: 3 & gt; & gt; log.txt
mit diesem: wenn vorhanden .Backup "% ~ dp0hstart \ hstart.exe" / NOCONSOLE / RUNAS / NOUAC / SHELL / WAIT / D = "% ~ dp0" / BELOWNORMAL "% ~ dp07za a -t7z -mx = 1" \ 192.168.1.249 \ homes \ qi \ BackupQIostra \% dow% .7z "% ~ dp0 Backup -m0 = BCJ2 -m1 = LZMA: d23 -m2 = LZMA: d19 -m3 = LZMA: d19 -mb0: 1 -mb0s1: 2 -mb0s2: 3 "& gt; & gt; log.txt
ABER:
Als ich jetzt beobachtete, wie es vom Scheduler ausgeführt wurde, bemerkte ich etwas Seltsames. Meine .bat-Datei wird gestartet, hstart führt den 7zip-Befehl extern aus und das schwarze Hauptbefehlsfenster, das auf den Abschluss der hstart / 7zip-Task wartet, verschwindet nach ~ 5 Minuten! Der externe Befehl 7zip wird jedoch weiterhin ausgeführt, ausgeblendet und ordnungsgemäß ausgeführt. Natürlich ist die Protokolldatei nicht vollständig, sie stapelt sich immer noch in der Mitte, da das Hauptfenster abgestürzt ist. Jetzt weiß ich sicher, dass es das Hauptbefehlsfenster ist, das abstürzt.
quelle
Ich denke, aktuelles Verzeichnis% systemroot% \ System32 beim Start mit Service oder Scheduler. Möglicherweise muss Folgendes hinzugefügt werden:
quelle
CD "%~dp0
, was auch dann funktioniert, wenn Sie die Dateien verschieben. Das solltest du wohl auch setzen%d0
in der Zeile darüber (oder darunter), um dasselbe Laufwerk wie die Batch-Datei zu wechseln. Es ist eine gute Angewohnheit, sich den Pfad der Batchdatei zu merken.Ich habe auch eine .bat-Datei von sheduler bekommen. Mein Problem war: Auf der Registerkarte "Einstellungen" wurde "Task stoppen, wenn er länger läuft:" angezeigt und ich habe das geändert. Aber der innere Auslöser hat dasselbe. Dadurch wurde meine Konsolenanwendung in 30 Minuten gestoppt (standardmäßig dort eingestellt). Also funktionierte es manuell, aber es wurde ein 0x41306-Fehler von shedule ausgeführt. Ich bin auf der Suche nach einer Lösung hierher gekommen, hoffe, es hilft jemandem.
quelle