Backup per Script oder Event?

Mancher Code geht ja doch evtl. ein wenig ins Eingemachte. Da würde ich gerne ein Backup machen, bevor ich ein (gerade schon geschriebenes) Script laufen lasse.

Ich fände es eigentlich ganz klasse, wenn man ein Backup der wesentlichen Sachen (ist ja, glaube ich, nur die Settings.xml?) „aus der Ferne anstossen“ könnte.

Grundsätzlich gibt es die Backup Funktion ja, denn IPS macht allnächtens ein Backup.

Kann man das auch forcieren?

Man könnte z.B. auf die (vielleicht gar nicht sooo abwägige?) Idee kommen, bei kritischen Scripts (die an den Objekten, Instanzen und Events schrauben) am Anfang des Scripts ein

„IPS_Backup(now)“

einzubauen.

Danke
jwka

Hallo jwka,

nicht das ich die Idee von vornherein schlecht machen will aber warum willst Du alles in IP-Symcon abwickeln, für Backups gibt es hervorragende Tool die wesentlich mehr sichern als nur die settings.xml.

Ich nutze ein kleines aber mächtiges Freewareprogramm das mir stündlich ein differenzielles Backup meines kompletten IP-Symcon-Verzeichnisses macht. Somit habe ich alles in der Rückhand sollte eines meiner eben gebastelten Skripte ein so mächtigen Crash produzieren das alles über den Jordan ist. Bei Bedarf könntest Du solch ein Backup auch per IPS starten lassen.

Manche Sachen gehören meines Erachtens einfach nicht nach IP-Symcon.

Kennst du [u]Pulse[/u] schon? Manuelles Anstoßen per Script geht zwar noch nicht, aber es gibt reichlich andere Features. Eine Soap-Schnittstelle gibts auch schon, müsste man halt erweitern…

Toni

Ähm, halt, stop!

Ich will keine Backuplösung bauen oder ersetzen oder sonstwas.

Ich möchte NUR die kritischen Files von IPS (settings.xml, was noch?) mit einer sehr simplen Anweisung wegsgesichert bekommen.

Anwendungsbeispiel:

Ich baue gerade an Skripten zum aufsetzen eines System, welches Instanzen anlegt, verschiebt, Events anlegt, evtl Kategorien umbenennt (update) etc.

Nun test ich rum, schreibe am Script und mache evtl. Fehler, die mir dann - gerade in der Testphase - mein ganzes IPS zerballern können.

Könnte ich in die ersten Zeile dieses Scripts die Zeile „IPS_Backup“ einbauen, würde die Settings.xml (und möglicherweise ein paar weitere Dateien) kurzerhand als Kopie in ein Backupverzeichnis geschossen - genau wie nachts.

Habe ich dann im Script Mist gebaut, kann ich superleicht einen „Rollback“ machen.

Natürlich kann man das grundsätzlich auch manuell machen, nur:

Man macht das 10 mal, 11 mal und 12 mal - nie passiert was. Beim 13.mal vergisst man das Backup oder denkt „wird schon…“. Und dann rummst es.

Das schöne an der Sache wäre halt, dass wirklich der letzte Stand gesichert wird, also auch alle manuellen Änderungen, die man während der Test macht, sind weggesichert.

Alternativ wäre mir auch schon ein bischen geholfen, wenn ich weiss, welche Dateien weggeschrieben werden müssen (und ob die bei laufendem Server auch wegkopierbar sind, von wegen Zugriffsverletzung!!!), dann könnte ich mir ein eigenes Script machen, das 'ne Batch aufruft.

Das, was ich suche ist halt m.E. alles im IPS eh schon vorhanden, denn es macht ja wohl nachts selbständig ein Backup. Warum also das Rad neu erfinden?

„A small step for paresy, a big thing for programmers“.

@ Tonic: ich seh mir das mal genauer an, scheint aber auf den ersten Blick etwas mehr zu machen, als meine kleine Funktion soll.
jwka

Wenn du das kritische File in einem kritischen Moment sicherst, dann hast du als Resultat nix mehr. Also:

Settings.xml nur sichern, wenn IP-Symcon aus ist. Alles andere kann mit einer geringen, aber vorhandenen Wahrscheinlichkeit, unangenehmer werden, als ohne diese Backup Geschichte.

paresy

Oder… Versuch dein Glück: PHP: copy - Manual

Gruß,

Toni

Alles verstanden und alles ja auch nachvollziehbar. Will nichts davon in Frage stellen.

@Paresy:
Mir ist völlig klar, dass eine „externe“ Lösung im Zweifel mehr Schaden anrichtet, als hilft. Deshlab rede ich ja auch immer von einer „IPS-internen“ Lösung.

Wie macht ihr das nächtens? Könntet Ihr nicht ein Kommando bauen, das genau diese Prozedur anstösst?

Und wegen „meiner Lösung“ (mit IPS Kommando): Wenn ein Script gerade startet und ganz zu Anfang das Backup Kommando abgesetzt wird, ist ja zu diesem Zeitpunkt „alles bestens“. Geht dann ein kritischeres Script in die Büsche und richtet Schaden an, merkt man das ja i.d.R. gleich und kann - dann manuell - den Zustand wieder herstellen mit der bekannten Prozedur „Server quit - rückspielen - Server start“.

Es geht mir wie gesagt darum, die wesentlichen Dateien geordnet auf die Seite zu legen, nicht ein wirkliches Backupprogramm zu haben!

Scheinbar versteht mich keiner … :o

Doch schon… das Problem ist aber, dass gerade das „geordnete zurseite legen“ eben die von dir schon angesprochene Zugriffsverletzung nach sich ziehen kann.

Ich habe mehrere Wochen getestet und gefummelt bis ich über Windows eine, ich sag mal einfach Schattenkopie, der in Benutzung befindlichen files bekommen habe. Mit Bordmittel wird das nur gehen wenn paresy alle aktuellen schreibzugriffe unterbricht, beendet und neustartet. Und zwar nicht dann wenn es grad passt sondern wen du es willst. Das ist, glaube ich, durchaus ein Aufwand.

Du kannst Pulse sagen, welche Verzeichnisse und Dateien es ignorieren soll und dann eine Sicherung „on the fly“ versuchen. Das funktioniert ganz gut. Auch über die Kommandozeile. Empfehlen würde ich für den Regelfall aber auf jeden Fall IPS zu beenden (was für dich jetzt ja nicht in Frage kommt - klar). Auch das macht Pulse auf Wunsch. Wenn du Dann noch sagst IPS soll auf die Beendung von Pulse warten bis das Script weiter ausgeführt wird müsstest du das mit relativ wenig Aufwand hinbekommen.

Aber es ist nur ein Versuch denn Pulse ist dafür nicht gemacht…

Toni

Ich finde den Gedanken von jwka nicht schlecht. Und die Funktionalitäten müsste IPS ja bereits haben. Die Sicherung passiert ja bereits automatisch jede Nacht.
Genau diesen Backup-Aufruf manuell anzustoßen, würde „etwas mehr“ Sicherheit bringen, gerade bei massiver Verwendung der „Anlegen-/Ändern-/Verschieben-Funktionalitäten“ im IPS.

Ich musste auch schon einiges „manuell zurückschieben“ :(.

Hi tonic,

danke für Deine Asführungen.

Ich hoffe jetzt mal ganz leise, dass noch ein paar andere IPS User sagen „das wäre was“ und Paresy oder Steiner ein Einsehen haben, Sinn meines Wunschs als sinnvoll ansehen und vielleicht was machen (wenn es vielleicht doch nicht sooooviel Aufwand bedeutet).

Ansonsten werde ich mal mit Pulse rumspielen.

Wie Paresy halt schon gesagt hat: Im Zweifel ist das Backup dann auch nix wert, weil IPS gerade die Finger dran hatte und so ein corruptes Settings.xml entstanden ist.

Ansonsten ist es halt wie immer: Die Welt ist hart und ungerecht zu den kurzen wie mir …:rolleyes:

Ich fänds auch wunderbar wenn ich sagen könnte Settings.xml JETZT speichern. So wies in IPS1 möglich war. Das würde die installation meiner Module deutlich vereinfachen. Aber paresy wird sich etwas dabei gedacht haben, dass man da nicht (mehr) dran kommt.

Na, ich gehe sicher davon aus, dass Paresy weiss was er tut und warum.

Es ist ja interessant, dass es in V1 da war (ich habe erst mit V2 begonnen).

Vielleicht sagt uns Paresy einfach, warum es nicht mehr da ist und wir verstehen und halten die Klappe?

Vieleicht stehe ich ja gerade auf dem Schlauch, aber was ist gegen (Vista Beispiel):


IPS_ExecuteEx("C:\Pulse\pulse.exe","-a",true,false,1);

einzwenden?

Das es zu einer Komplettsicherung führt, die entsprechend lange dauert.

Es geht eigentlich nur um eine verlässliche „schnelle Sicherung“ der settings.xml.

@Ralf: GENAU ERKANNT!

Es geht nur und ausschliesslich um die Sicherung einer (oder zwei, drei) offenbar kritischen Datei, die man sich richtig zerballern kann. Nicht um ein echtes Backup.

jwka

Ok sehe ich ein, vieleicht zuviel des guten.
Man könnet vieleicht eine Funktion schreiben, nennen wir sie ruhig ips_backup() diese würde:

  1. eine backupvariable prüfen (If Bedingung - setzen oder löschen)
  2. mit IPS_ExecuteEx einen batchjob starten mit:
  3. net stop „IP-Symcon Environment“
  4. die wichtigen Dateien kopieren
  5. net start „IP-Symcon Environment“

Nun könnte das Testscript gestartet werden. (Theoretisch sogar automatisch mit dem Startevent)
Ist zwar eine Krücke könnte aber funktionieren.

Wie ich schon weiter oben sagte und auch einige andere schon festgestellt haben, ist da mit den Krücken so ne Sache.

Offenbar ist es doch so, dass neben mir auch noch andere User diese Funktion „sehr willkommen“ heissen würden?

Und wenn ich Paresy in einem anderen Thread richtig verstanden habe, monitort er diesen Thread hier auch mit. Vielleicht könnte er mal ein kurzes Statement abgeben, ob Chancen bestehen, dass es eine solche Funktion ins IPS System schafft.

Dann können wir diesen Thread schliessen, oder?

Falsch…

Pulse sichert genau das was du ihm sagts. Da das Einsatzgebiet in der Regel eine Komplettsicherung ist, ist es per Default so konfiguriert. Du kannst aber eine Liste von Ordnern angeben die es nicht sichern soll (Blacklist).

Eine Whitelist hab ich mir bislang verkniffen weil ich keine Anwendung dafür gesehen habe…

Toni