Tech- & FAQ-Forum

Zurück   CC-Community Board > CC-CB Hauptforen > Tech & FAQ Forum

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 14.05.2002, 09:04   #1
cantor
Oldie
 
Registriert seit: 23.04.2001
Beiträge: 1.386
Standard backup: läßt sich folgendes per batch realisieren?

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
cantor ist offline   Mit Zitat antworten
Alt 15.05.2002, 11:04   #2
Fragone
Oldie++
 
Benutzerbild von Fragone
 
Registriert seit: 25.04.2001
Ort: In einer Wohnung
Beiträge: 2.207
Standard

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
Fragone ist offline   Mit Zitat antworten
Alt 15.05.2002, 22:14   #3
cantor
Oldie
 
Registriert seit: 23.04.2001
Beiträge: 1.386
Standard

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
die zusätzliche tägliche sicherungskopie einzelner wichtiger dateien werde ich mit einer separaten batch realisieren, die im dos-fenster unter win läuft (getriggert über einen eintrag in der autostart gruppe), da m.e. xcopy nur im dos fenster mit langen dateinamen umgehen kann, nicht hingegen unter reinem dos.

gruß cantor
cantor ist offline   Mit Zitat antworten
Alt 16.05.2002, 06:24   #4
Garak
Team (His Master’s Voice)
 
Benutzerbild von Garak
 
Registriert seit: 23.04.2001
Beiträge: 4.119
Standard

Genial! Vielleicht kann ich das ein oder andere für die GCTD verwenden

Viele Grüße

Garak
Garak ist offline   Mit Zitat antworten
Alt 16.05.2002, 08:46   #5
Fragone
Oldie++
 
Benutzerbild von Fragone
 
Registriert seit: 25.04.2001
Ort: In einer Wohnung
Beiträge: 2.207
Standard

Für Batchprogrammierung bin ich immer zu haben!

Fragone
Fragone ist offline   Mit Zitat antworten
Alt 16.05.2002, 20:52   #6
spamwerbung
Oldie
 
Registriert seit: 30.12.2001
Beiträge: 736
Standard

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.
spamwerbung ist offline   Mit Zitat antworten
Alt 16.05.2002, 20:57   #7
spamwerbung
Oldie
 
Registriert seit: 30.12.2001
Beiträge: 736
Standard

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.
spamwerbung ist offline   Mit Zitat antworten
Alt 17.05.2002, 01:22   #8
Fragone
Oldie++
 
Benutzerbild von Fragone
 
Registriert seit: 25.04.2001
Ort: In einer Wohnung
Beiträge: 2.207
Standard

Gut zu wissen, falls mal benötigt!

THX sagt Fragone
Fragone ist offline   Mit Zitat antworten
Alt 17.05.2002, 02:04   #9
miamoto_musashi
Oldie
 
Registriert seit: 26.04.2001
Ort: Weser
Beiträge: 209
Standard Backup

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
miamoto_musashi ist offline   Mit Zitat antworten
Alt 17.05.2002, 02:16   #10
Pitti_Platsch
Oldie
 
Benutzerbild von Pitti_Platsch
 
Registriert seit: 25.04.2001
Ort: Im Märchenwald
Beiträge: 121
Standard

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
Pitti_Platsch ist offline   Mit Zitat antworten
Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:35 Uhr.


vBulletin® Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.