HowTo: Miranda von USB-Stick starten mit Backup der Miranda Datenbank V2

Vor einiger Zeit habe ich in diesem HowTo beschreiben, wie man den Instant Messanger von einem USB-Stick starten kann und zuvor die Datenbank sichert. Nun habe ich mein Script überarbeitet und eine zusätzliche Sicherung per FTP eingefügt. Hier die neue Batch:

01 @echo off
02 set jahr=%date:~-4%
03 set monat=%date:~-7,2%
04 set tag=%date:~-10,2%

05 echo.
06 echo.
07 echo.
08 echo.
09 echo Sicherheitskopie von Miranda DB wird angelegt…
10 echo.
11 echo.
12 echo.
13 echo Name der lokalen Backupdatei: miranda\backup\nico_%jahr%%monat%%tag%.dat
14 copy miranda\Nico.dat miranda\backup\nico_%jahr%%monat%%tag%.dat
15 echo.
16 echo.
17 echo.
18 echo Starte Miranda…
19 start miranda\miranda32.exe

20 echo.
21 echo.
22 echo Lokale Backupdatei wird auf FTP Server gesichert…

23 miranda\ncftpput -V -t 10 -u USER -p PASSWORD SERVER . miranda\backup\nico_%jahr%%monat%%tag%.dat

24 if %errorlevel% == 0 goto fertig

25 echo.
26 echo ncftp endet nicht mit errorlevel 0 sondern mit
27 echo %errorlevel%
28 echo.
29 echo.
30 echo 0. Success.
31 echo 1. Could not connect to remote host.
32 echo 2. Could not connect to remote host – timed out.
33 echo 3. Transfer failed.
34 echo 4. Transfer failed – timed out.
35 echo 5. Directory change failed.
36 echo 6. Directory change failed – timed out.
37 echo 7. Malformed URL.
38 echo 8. Usage error.
39 echo 9. Error in login configuration file.
40 echo 10. Library initialization failed.
41 echo 11. Session initialization failed.

42 :fertig

43 echo Backupdatei kopiert.

44 ping -n 3 127.0.0.1 > NUL

So nun eine kurze Beschreibung:
In Zeile 2-4 werden die Variablen für das aktuelle Datum gesetzt. Diese Methode ist einfacher als die zuvor eingesetzt mit FOR (siehe altes Script Zeile 7). In den nächsten Zeilen werden nur Meldungen ausgegeben, soll ja auch schön aussehen ;-) . Interessant wird es dann in Zeile 14, dort wird die lokale Kopie der Datenbank angelegt. Danach folgen wieder Ausgaben und der Start von Miranda in Zeile 19. Nun kommt der neue Teil, Sicherung per FTP. Ich setzte hierfür NCFTPPUT aus dem NCFTP-Client Paket ein (Das Paket ist wirklich zu empfehlen, damit ist sogar rekursives kopieren möglich). Nehmen wir den Befehl mal auseinander:

miranda\ncftpput -V -t 10 -u USER -p PASSWORD SERVER . miranda\backup\nico_%jahr%%monat%%tag%.dat

-V keine Ausgabe am Bildschirm
-t Timeout (in diesem Fall 10 Sekunden)
-u Username
-p Passwort
dann kommt der Name des FTP-Servers, als nächstes das Zielverzeichnis, in diesem Fall . (Punkt) also das Incoming-Verzeichnis des Users. Abschließend noch der Name/Pfad der zu sendenden Datei.
In Zeile 24 wird dann der Exit-Code von NCFTP überprüft. Ist er 0 ist alles OK und es wird zur Sprungmarke :fertig gesprungen. Wenn der Exit-Code nicht 0 ist, wird eine Meldung, der Exit-Code und die Übersicht über die Exit-Codes von NCFTPPUT ausgeben. Das wars eigentlich schon.

Wer das ganze nicht mit NCFTPPUT lösen möchte, kann auch auf das Standard FTP aus MS Windows zurückgreifen:

echo open SERVER > miranda.ftp
echo USER>> miranda.ftp
echo PASSWORD>> miranda.ftp
echo put miranda\backup\nico_%jahr%%monat%%tag%.dat>>miranda.ftp
echo dir>> miranda.ftp
echo close>> miranda.ftp
echo bye>> miranda.ftp

ftp -s:miranda.ftp
del miranda.ftp

Hier werden die einzelnen FTP-Befehle in eine temporäre Datei geschrieben, welche dann dem FTP-Kommando übergeben wird. Allerdings ist diese Methode IMO wesentlich umständlicher.

Einen Kommentar schreiben

Too Cool for Internet Explorer