IPCop-Forum.de

www.ipcop-forum.de


IPCop-Community
CL-Systems
Home Home   Doku Doku   Links Links   Downloads Downloads
UnIPCop Der (Un)IPCop   IFS IPCop-ForumSpy
CopTime CopTime   Galerie IPCop-Galerie   IPCop Userkarte Userkarte
Aktuelle Zeit: 24.11.2017, 06:29

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: Mehrere IPCops remote sichern
BeitragVerfasst: 14.03.2009, 20:11 
Offline
Deputy Superintendent
Themenstarter
Deputy Superintendent

Registriert: 09.09.2005
Beiträge: 368
Wohnort: Hohengehren | BW
Aufgabenstellung

Das Erstellen eines Sicherungssatzes via Web-GUI ist eine prima Sache wenn man nur wenige IPCops auf diesem Weg sichern möchte/muß. Im vorliegenden Fall sind derzeit ca. 70 IPCops regelmäßig zu sichern. Daraus ergibt sich die Aufgabe, das Erstellen, Herunterladen und Verwalten von Sicherungen zu automatisieren. Die nachfolgend weiter erklärten Dateien und Skripte erfüllen diese Aufgabe auf einem Windows-System. Das zentrale Skript wird einmal wöchentlich (die Konfigurationen der IPCops ändern sich ja nicht täglich) vom Taskplaner aufgerufen holt sich dann bei allen eingetragenen bzw. bei den erreichbaren IPCops die dort generierten Sicherungsdateien ab.

Die Dateien im Einzelnen
- getall-bkups.cmd: zentrales Skript zum Erstellen der Sicherungen und nachfolgendem Herunterladen
- mkbackup.txt: enthält die Befehle, die von putty zwecks Erstellen der Sicherungsdateien übergeben werden
- Beispiel.txt: enthält die Anweisungen für winscp für den Download der Sicherungsdateien
- deloldbackups.vbs: das Skript durchsucht die Verzeichnisstruktur und löscht alte Sicherungsdateien

Bitte beachten: die Dateien mkbackup.txt und Beispiel.txt müssen im UNIX-Dateiformat vorliegen. Zum Bearbeiten bitte einen Texteditor verwenden, der das Format unterstützt. Das Windows-eigene notepad kann das NICHT! Geeignete Editoren finden sich im Internet viele, ein Vertreter ist z.B. Crimson Editor http://www.crimsoneditor.com.

Benötigte Programme
- putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
- winscp (http://winscp.net/eng/download.php)

Vorarbeiten
1. putty und winscp sind installiert, die Verbindungen zu anderen Cops sind hinterlegt (s.a. http://www.ipcop-forum.de/forum/viewtopic.php?f=3&t=15741). Als zweckmässig hat sich erwiesen, alle Verbindungen in beiden Programmen gleich zu benennen.

2. Da eine Passworteingabe kontraproduktiv hinsichtlich der Automatisierung ist, ist die einzig sinnvolle Methode die Autentifizierung per Zertifikat (s.a. http://www.ipcop-forum.de/forum/viewtopic.php?f=3&t=18190).

3. Man erstelle sich eine geeignete Verzeichnisstruktur z.B. C:\IPCop\Backups\[eindeutiger Name]\. Ich habe darunter Verzeichnisse meines Bedarfs angelegt z.B. "Konfig Backups" und "sync". In ersterem lege ich die Dateien der allerersten Sicherung nach der Installation ab, in letzterem landen die per winscp synchronisierten Sicherungsdateien. Anders benannte Verzeichnisse müssen dann ggfs. in den Dateien "Beispiel.txt" und "deloldbackups.vbs" angepasst werden.

Was machen die Skripte
In das Skript "getall-bkups.cmd" wird jedes zu sichernde System mit 2 Aufrufen eingetragen:
Code:
start /B /MIN /WAIT C:\Programme\PuTTY\putty.exe -load "Beispiel" -m C:\IPCop\Backups\mkbackup.txt
und
Code:
start /B /MIN C:\Programme\winscp\winscp.exe "Beispiel" /console /keepuptodate /script=C:\IPCop\Backups\Beispiel.txt


Der Aufruf von putty stellt die Verbindung zu dem vordefinierten System namens "Beispiel" her und übergibt die in der Datei "mkbackup.txt" hinterlegten Befehle zeilenweise an das System:
Code:
rm /home/httpd/html/backup/*

löscht die (alten) Sicherungen auf dem IPCop,
Code:
/usr/local/bin/ipcopbkcfg --write 'remote initiated backup'

weist den IPCop an eine Sicherung mit dem Namen "remote initiated backup" zu erstellen. Dieser Name taucht dann ganz normal im Web-GUI des IPcops im Bereich Datensicherung auf. Die Verbindung wird danach automatisch wieder beendet. Der Parameter "/WAIT" sorgt dafür, dass der nachfolgende Befehl erst nach Abschluss der Ausführung von putty aufgerufen wird. Sonst würde winscp ggfs. Dateien abholen wollen, die gerade erst erstellt werden.

Im Anschluß wird winscp mit dem Namen der Verbindung aufgerufen und bekommt mitgeteilt, daß
- /console: die Ausführung nur als Kommandozeilenprogramm erfolgen soll
- /keepuptodate: die Dateien vom IPCop in das angegebene Verzeichnis synchronisiert werden sollen
- /script=C:\IPCop\Backups\Beispiel.txt: hier ist angegeben wie die Synchronisation erfolgen soll

Der Inhalt der Datei Beispiel.txt sieht so aus:
Code:
synchronize local C:\IPCop\Konfigs\Beispiel\sync /home/httpd/html/backup

Kopiere Dateien vom IPCop aus /home/httpd/html/backup in das (lokale) Verzeichnis C:\IPCop\Konfigs\Beispiel\sync. Ggfs. vorhandene lokale Dateien werden nicht verändert ausser es existieren schon Dateien mit gleichem Namen. Das ist aber nicht zu erwarten, da die Sicherungsdateien im IPCop im Namen das Tagesdatum und die Erstellungszeit enthalten.

Code:
synchronize local "C:\IPCop\Backups\Beispiel\Konfig Backups\" /var/ipcop/backup

Wie oben, aber andere Verzeichnisse

Code:
exit

Dieser Befehl bildet den Abschluss des Synchronisationsvorgangs für winscp und beendet die Ausführung.

So weit, so gut. Nach einiger Zeit sammeln sich sich im Verzeichnis die Sicherungsdateien. Da relativ alte Sicherungen irgendwann uninteressant werden, man aber wieder mal nicht jedes Verzeichnis manuell auf alte Inhalte überprüfen möchte, habe ich mir noch ein Skript gebastelt, das die Unterverzeichnisse mit dem Namen "sync" durchsucht und alle Dateien, die älter als 30 Tage sind, wieder löscht. Diese Skript wird zm Abschluss in getall-bkups.cmd aufgerufen. Sofern Eure Verzeichnisnamen anders lauten, müsst ihr in diesem Skript die Zeile 15 und 16

Code:
path = "C:\IPCop\Konfigs"
set MySyncFolderName = "sync"


mit dem Namen des Startverzeichnis und dem Namen des zu untersuchenden Unterverzeichnis entsprechend Euren Bedürfnissen anpassen. Wer die Dateien länger aufbewahren will passt auch noch die Zeile 19

Code:
killdate = date() - 30


an. Standardmäßig sind hier 30 Tage angegeben, sprich "lösche alle Dateien älter als 30 Tage vor heute".

Wie immer gilt:
- alle angebotenen Skripte setzt ihr auf eigene Gefahr ein
- ich übernehme keinerlei Haftung oder Gewähr auf Fehlerfreiheit
- MACHT EINE SICHERUNG BEVOR IHR DAS SKRIPT AUSPROBIERT
- Hinweise oder Rückmeldungen zu Fehlern bitte AUSSCHLIESSLICH über das IPCop-Forum

Und hier gibt es die Dateien: http://www.compass-host.de/ipcop/remote-backup.zip

Viel Spass damit denen, die es gebrauchen können.

--------------------------------------------------
Ein weiteres Skript stelle ich auf Nachfrage per PN Interessierten gerne zur Verfügung:

Name: decrypt.vbs
Zweck: Entschlüsslen einer Sicherungsdatei und öffnen im Entpacker (Drag and Drop)

Das lässt sich ja auch prima manuell durchführen, geht per Drag and Drop aber schneller. Zudem ist es machmal lästig, sich die Informationen per direktem Zugriff vom IPCop abzuholen. Ggfs. ist es auch von Zeit zu Zeit hilfreich Informationen aus einer älteren Sicherungsdatei auszulesen, die anderweitig nicht mehr zur Verfügung steht.

_________________
Gruss
Rüdiger


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 1 Beitrag ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu Forum:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de