|
|||||||
|
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|
#1 |
|
Oldie
Registriert seit: 23.04.2001
Beiträge: 1.386
|
hallo boardies,
da meiner einschätzung nach auf dem board eine große technische kompetenz versammelt ist, läßt sich vielleicht eine lösung für folgendes kleine 'projekt' finden: ich möchte meine regelmäßigen back-ups automatisieren und dabei _nicht_ auf zusätzliche ressourcenverbrauchende programme, die im systray festsitzen, zurückgreifen, sondern der vorgang jeweils beim hochfahren des rechners automatisch starten (z.b. über die autoexec.bat). mein back-up konzept: 1. wöchentliches image der platte mit dem os mittels ghost 2. tägliches komplett-backup wichtiger daten (verzeichnisse) unter dos mit xcopy beim hochfahren des systems sollte eine batch (?)-datei gestartet werden, die überprüft, ob an diesem tag bereits das backup mittels xcopy erfolgt ist. ich kann mir vorstellen, bei diesem vorgang das systemdatum in eine datei umzuleiten und zu beginn der batchdatei abzufragen, ob das zuletzt in die datei geschriebene datum dem aktuellen systemdatum entspricht (das kann z.b. der fall sein, wenn der rechner an einem tag mehrmals gebootet wird). sofern am betreffenden tag noch kein backup mittels xcopy durchgeführt wurde, sollte eine entsprechende befehlssequenz aufgerufen werden. im nächsten schritt soll geprüft worden, ob ein ghost-image überhaupt vorliegt und falls ja, es nicht älter als z.b. 7 tage ist. falls ja, kann die batch beendet werden. falls nein, sollte ghost über kommandozeilenparameter aufgerufen werden und das image erstellen und abspeichern (und ghost anschließend - über die kommandozeilenparameter - automatisch beendet werden). damit wäre dann die backup-batch abgearbeitet und windows könnte ganz normal gestartet werden. mein problem: ich bin mir nicht sicher, ob und wenn ja, wie die datumabfrage (liegt eine datei namens ???.gho vor und ist sie nicht älter als 7 tage) überhaupt durch eine dos batch-datei zu lösen ist. falls meine idee nicht über eine batch gelöst werden kann, was wäre als alternative empfehlenswert? ginge soetwas mit einem kompilierten pascal-programm (rudimentäre kenntnisse sowie ein handbuch sind vorhanden)? ich bin für alle tips dankbar. falls ich dabei bin, das rad neu zu erfinden, wäre ein dezenter hinweis auf bereits vorliegende lösungen ebenfalls nett. vielleicht kann ja auch der eine oder andere mit einer solch 'gebastelten' lösung etwas anfangen, wenn auf diese weise die verwendung von kommerziellen programmen wie second copy oder der einsatz aufwendiger taskplaner etc. überflüssig würde. gruß cantor |
|
|
|
|
|
#2 |
|
Oldie++
Registriert seit: 25.04.2001
Ort: In einer Wohnung
Beiträge: 2.207
|
Hi!
Hab mich mal sozusagen als "herausforderung" drangemacht. Braucht find.exe, ghost.exe und Qbasic.exe! Sollte unter jedem Dos funzen. Einfach in die Autoexec.bat linken (mittels call xxx.bat) Zeile 6&7 muss angepasst werden! Fünftletzte Zeile muss auch angepasst werden! Falls du mehr als 1 Copy-Befehl brauchst, kopier bitte Zeilen 6-8 auch mit! Das Programm macht die Backups standartmässig nach d:\images. Falls anders gewünscht, bitte auch anpassen. Hope it helps Fragone Code:
@echo off echo. Backupprogramm echo. ============== echo. echo. Kopiere Dateien .... if "%1" == "/a" xcopy "c:\nc" "d:\nc" /d /s /h /i if not "%1" == "/a" xcopy "c:\nc" "d:\nc" /d /s /h /i > NUL if errorlevel == 1 if not "%1" == "/i" if not "%2" == "/i" goto fehler1 echo. Dateien kopiert. echo. echo. Prüfe Image .... d: cd \ md images cd images date /t | find "Mi " > NUL if errorlevel == 1 goto noday date /t > datum.tmp dir *.gho > ghosts.tmp echo OPEN "datum.tmp" FOR INPUT AS #1 > date.bas echo OPEN "ghosts.tmp" FOR INPUT AS #2 >> date.bas echo INPUT #1, a$ >> date.bas echo a$ = RIGHT$(a$, 10) >> date.bas echo a$ = LEFT$(a$, 6) + RIGHT$(a$, 2) >> date.bas echo DO UNTIL EOF(2) >> date.bas echo INPUT #2, b$ >> date.bas echo IF LEFT$(b$, 8) = a$ THEN GOTO gefunden >> date.bas echo LOOP >> date.bas echo CLOSE >> date.bas echo SHELL "if exist old_ghos.gho del old_ghos.gho" >> date.bas echo SHELL "if exist ghost.gho ren ghost.gho old_ghos.gho" >> date.bas echo SYSTEM >> date.bas echo. >> date.bas echo gefunden: >> date.bas echo CLOSE >> date.bas echo SYSTEM >> date.bas qbasic /run date.bas del date.bas del datum.tmp del ghosts.tmp if exist ghost.gho goto dayex echo. Image muss gemacht werden. Starte Ghost goto make :weit echo. Image abgeschlossen. echo. echo. Programm beendet. goto ende :fehler1 echo. Es ist ein Fehler beim Kopieren aufgetreten. echo. Bitte mit Parameter /a starten! Damit werden Programmeldungen angezeigt. echo. echo. Mit /i kann dieser Fehler ignoriert werden. echo. echo. Programm wird beendet. goto ende :fehler2 echo. Es ist ein Fehler beim Image aufgetreten. echo. echo. Programm wird beendet. goto ende :noday echo. Image muss nicht gemacht werden. echo. Es ist nicht Freitag. echo. echo. Programm wird beendet. goto ende :dayex echo. Image muss nicht gemacht werden. echo. Image ist von heute. echo. echo. Programm wird beendet. goto ende :make REM Bitte Parameter anpassen! ghost.exe ghost.gho /???????????? if errorlevel == 1 goto fehler2 goto weit :ende |
|
|
|
|
|
#3 |
|
Oldie
Registriert seit: 23.04.2001
Beiträge: 1.386
|
hi fragone,
zunächst ganz herzlichen dank für deine 'tüftelei'! die datumsabfrage finde ich von dir gut gelöst. per zufall bin ich allerdings auf ein kleines programm namens isdate von horst schaeffer (http://home.mnet-online.de/horst.muc/german.htm) gestoßen, das eine noch elegantere abfrage gestattet und mich zu folgender batch angeregt hat: Code:
@echo off REM --- Abfrage existiert Image --- :datei if exist d:\image\boot\platte1.gho goto datum echo Es existiert im Sicherungsverzeichnis noch kein Image! echo. goto image REM --- Abfrage letztes Image --- :datum c:\dos\ISDATE d:\image\boot\platte1.gho TODAY /D > c:\temp\zeit.bat call c:\temp\zeit.bat c:\dos\ISDATE d:\image\boot\platte1.gho Before TODAY -6 if errorlevel 1 goto ende echo Das letzte abgespeicherte Image von Platte 1 ist %Diff% Tage alt. echo. REM --- Abfrage Image erstellen --- :image CHOICE /T:N,10 Moechten Sie ein (neues) Image von Platte 1 erstellen? if errorlevel 2 goto ende REM --- Image mit Norton Ghost erstellen --- :start echo. echo Ein neues Image wird erstellt ... echo Bitte haben Sie etwas Geduld ... if exist d:\image\boot\platte1.old del d:\image\boot\platte1.old if exist d:\image\boot\platte1.gho ren d:\image\boot\platte1.gho platte1.old f:\symantec\ghost2~1\ghostpe.exe -clone,mode=dump,src=1,dst=d:\image\boot\platte1.gho -z1 -fcr=d:\image\boot\platte1.crc -quiet -fx if errorlevel 1 goto fehler echo Fertig! echo. CHOICE /T:N,10 Moechten Sie das Image jetzt auf Integritaet pruefen? if errorlevel 2 goto ende f:\symantec\ghost2~1\ghostpe.exe -chkimg,d:\image\boot\platte1.gho if errorlevel 1 goto fehler goto ende : fehler echo. echo Es ist ein Fehler aufgetreten! echo Details finden Sie in der Datei "Ghosterr.txt" CHOICE /T:N,5 > nul :ende gruß cantor |
|
|
|
|
|
#4 |
|
Team (His Master’s Voice)
Registriert seit: 23.04.2001
Beiträge: 4.119
|
Genial! Vielleicht kann ich das ein oder andere für die GCTD verwenden
Viele Grüße Garak |
|
|
|
|
|
#5 |
|
Oldie++
Registriert seit: 25.04.2001
Ort: In einer Wohnung
Beiträge: 2.207
|
Für Batchprogrammierung bin ich immer zu haben!
Fragone |
|
|
|
|
|
#6 |
|
Oldie
Registriert seit: 30.12.2001
Beiträge: 736
|
Für lange Dateinamen im reinen DOS-Mode gibt's die LFN-Tools unter http://odi.webjump.com. Das sind kleine Programme, welche wie die normalen DOS-Befehle benutzt werden, allerdings mit einem "L" vorneweg. (LDIR;LMD;LCOPY;usw.) damit sind lange Dateinamen unter DOS kein Problem mehr.
so long. |
|
|
|
|
|
#7 |
|
Oldie
Registriert seit: 30.12.2001
Beiträge: 736
|
Hab noch was gefunden. DOSLFN von Henrik Haftmann. Das ist ein TSR welches die BS Funktion für lange Dateinamen im DOS aktiviert. Wie's funktioniert steht auf der Homepage von Henrik Haftmann unter http://www-user.tu-chemnitz.de/~heha.
so long. |
|
|
|
|
|
#8 |
|
Oldie++
Registriert seit: 25.04.2001
Ort: In einer Wohnung
Beiträge: 2.207
|
Gut zu wissen, falls mal benötigt!
THX sagt Fragone |
|
|
|
|
|
#9 |
|
Oldie
Registriert seit: 26.04.2001
Ort: Weser
Beiträge: 209
|
Moin, Boardies !!!
Für Win98 nutze Ich dann, wenn alles sauber läuft, diese Batch, die Ich allerdings von Hand starte : Backup.bat ------------------------------------------------------------------------------------ @Echo Off Set SaveTo=C:\Backup Set WinPath=C:\Windows If Not Exist %SaveTo%\Nul MD %SaveTo% Set CMD1=Attrib -s -r -h Set CMD2=Copy Set CMD3=Attrib +s +r +h Echo. Echo Sicherung erfolgt nach %SaveTo% Echo. %CMD1% C:\Io.sys %CMD1% C:\Msdos.sys %CMD1% %WinPath%\User.dat %CMD1% %WinPath%\System.dat %CMD2% C:\Autoexec.bat %SaveTo% %CMD2% C:\Config.sys %SaveTo% %CMD2% C:\Command.com %SaveTo% %CMD2% C:\Io.sys %SaveTo% %CMD2% C:\Msdos.sys %SaveTo% %CMD2% %WinPath%\Win.ini %SaveTo% %CMD2% %WinPath%\System.ini %SaveTo% %CMD2% %WinPath%\Protocol.ini %SaveTo% %CMD2% %WinPath%\User.dat %SaveTo% %CMD2% %WinPath%\System.dat %SaveTo% %CMD3% C:\Io.sys %CMD3% C:\Msdos.sys %CMD3% %WinPath%\User.dat %CMD3% %WinPath%\System.dat ------------------------------------------------------------------------------------ Zum Restore dann dies . Restore.bat ------------------------------------------------------------------------------------- @Echo Off Set SaveTo=C:\Backup Set WinPath=C:\Windoof Set CMD1=Attrib +s +r +h Set CMD2=Copy Set CMD3=If Exist Set CMD4=Attrib -s -r -h Echo. Echo Dateien werden von %SaveTo% wiederhergestellt Echo. %CMD3% C:\Io.sys %CMD4% C:\Io.sys %CMD3% C:\Msdos.sys %CMD4% C:\Msdos.sys %CMD3% %WinPath%\User.dat %CMD4% %WinPath%\User.dat %CMD3% %WinPath%\System.dat %CMD4% %WinPath%\System.dat %CMD2% %SaveTo%\Autoexec.bat C:\ %CMD2% %SaveTo%\Config.sys C:\ %CMD2% %SaveTo%\Command.com C:\ %CMD2% %SaveTo%\Io.sys C:\ %CMD2% %SaveTo%\Msdos.sys C:\ %CMD2% %SaveTo%\Win.ini %WinPath% %CMD2% %SaveTo%\System.ini %WinPath% %CMD2% %SaveTo%\Protocol.ini %WinPath% %CMD2% %SaveTo%\User.dat %WinPath% %CMD2% %SaveTo%\System.dat %WinPath% %CMD1% C:\Io.sys %CMD1% C:\Msdos.sys %CMD1% %WinPath%\User.dat %CMD1% %WinPath%\System.dat ------------------------------------------------------------------------------------- Gabs mal in der PC-Welt, hat mir schon manche Neuinstallation erspart vieleicht kanns jemand brauchen... Gruss miamoto_musashi |
|
|
|
|
|
#10 |
|
Oldie
Registriert seit: 25.04.2001
Ort: Im Märchenwald
Beiträge: 121
|
Sehr interessante Lösung mit dem QBasic!
Ich liebe solche kleinen aber feinen Sachen. ...und weils hier eventuell etwas zum Thema paßt, möchte ich mal auf das schon etwas ältere aber von mir unter Win9.x noch immer genutze "CD-Backup per Batch" aus der PC-Intern hinweisen: Klick mich! (Rubrik "CD-Backup") P.S. Eventuell kann da ja mal einer von Euch für die "erweiterete Version" eine komfortablere Oberfläche in TurboPascal oder so programmieren, da mir dafür leider die Kenntnisse fehlen... Gruß Pitti_Platsch |
|
|
|
|
| Themen-Optionen | Thema durchsuchen |
| Ansicht | |
|
|