WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 03.01.2020 15:33:57

webbird
Administrator

syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Hinweis: Dieser und die nachfolgenden 6 Beiträge wurden aus dem Wunschzettel-Thread zum Backup-Modul ausgelagert.
https://forum.wbce.org/viewtopic.php?id=3323


Bisherige Einstellungen. Grundidee stammt aus Ralfs syncData.

Edit: Screenshot entfernt, aktuellere Version unten.

Es gibt z.B. Tabellen, die man nicht mit sichern will, z.B. beim alten syncData die dazugehörigen Tabellen oder bei WBCE "dbsessions" und "blocking". Oder bei Dateien und Verzeichnissen sowas wie desktop.ini (bei Windows-Servern), oder nbproject, .git etc.

Hier mal die Original-Konfigdatei von SyncData2.

[== JavaScript ==]
{
  "CMS": {
    "CMS_SERVER_EMAIL": "name@domain.tld",
    "CMS_SERVER_NAME": "WB Mailer",
    "CMS_TYPE": "WebsiteBaker",
    "CMS_VERSION": "2.8.3",
    "CMS_MEDIA_DIRECTORY": "\/media",
    "CMS_PAGES_DIRECTORY": "\/pages",
    "CMS_URL": "http:\/\/localhost:8888",
    "CMS_PATH": "P:\\_zips\\01_WBCE\\PortablePHP7\\root",
    "CMS_ADMIN_URL": "http:\/\/localhost:8888\/admin",
    "CMS_ADMIN_PATH": "P:\\_zips\\01_WBCE\\PortablePHP7\\root\/admin",
    "INSTALLATION_NAME": ""
  },
  "email": {
    "active": false
  },
  "monolog": {
    "level": 200,
    "email": {
      "active": false,
      "level": 400,
      "to": "name@domain.tld",
      "subject": "SyncData Alert"
    }
  },
  "general": {
    "client_id": "df4eus4hg",
    "memory_limit": "256M",
    "max_execution_time": "3000",
    "time_zone": "Europe\/Berlin",
    "debug": false,
    "templates": [
      "default"
    ]
  },
  "security": {
    "active": true,
    "key": "4Z6Ue9MNz"
  },
  "backup": {
    "settings": {
      "replace_table_prefix": true,
      "add_if_not_exists": true,
      "replace_cms_url": true
    },
    "files": {
      "ignore": [
        ".buildpath",
        ".project",
        "desktop.ini"
      ]
    },
    "directories": {
      "ignore": {
        "directory": [
          "temp",
          "syncdata",
          "kit2",
          "nbproject"
        ],
        "subdirectory": [
          ".git"
        ]
      }
    },
    "tables": {
      "ignore": {
        "table": [
          "blocking",
          "dbsessions"
        ],
        "sub_prefix": [
          "kit2_",
          "syncdata_"
        ]
      }
    }
  },
  "restore": {
    "settings": {
      "replace_table_prefix": true,
      "replace_cms_url": true,
      "ignore_cms_config": true
    },
    "files": {
      "ignore": [
        ".buildpath",
        ".project",
        "desktop.ini"
      ]
    },
    "directories": {
      "ignore": {
        "directory": [
          "temp",
          "syncdata",
          "kit2",
          "nbproject"
        ],
        "subdirectory": [
          ".git"
        ]
      }
    },
    "tables": {
      "ignore": {
        "table": [
          
        ],
        "sub_prefix": [
          "kit2_",
          "syncdata_"
        ]
      },
      "utf-8": {
        "compatibility": {
          "table": {
            "mod_wysiwyg": {
              "enabled": false
            },
            "mod_news_posts": {
              "enabled": false
            },
            "mod_droplets": {
              "enabled": false
            },
            "pages": {
              "enabled": false
            },
            "mod_massmail": {
              "enabled": true
            }
          }
        }
      }
    }
  }
}

Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

Liked by:

florian, berny

#2 07.01.2020 15:22:19

webbird
Administrator

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Hm, weiter hier posten oder lieber einen ganz neuen Thread aufmachen?

Bei den Einstellungen habe ich mir gedacht, dass es nett wäre, wenn man die Voreinstellungen pro Sicherungslauf bei Bedarf anpassen könnte, zumindest in einem Experten-Modus. Anbei mal ein Screenshot mit bereits funktionierenden Settings, die derzeit _nicht_ pro Sicherung anpaßbar sind, sondern global gelten.

attachment.php?item=2133&download=1

Die Sicherung der Datenbank, des pages- und des media-Verzeichnisses funktioniert bereits, was erst mal nur heißt: Es wird was exportiert, und es fällt eine ZIP-Datei raus. Ob man dann damit auch eine Wiederherstellung durchführen kann, ist damit noch nicht gesagt - und es ist auch noch nicht eingebaut. Was dafür definitiv schon funktioniert ist das Umgehen des Server-Timeouts. Nach dem Starten der Sicherung über das Backend ist das komplett entkoppelt, derzeit gibt es auch noch keinen Fortschrittsbalken oder sowas, nur einen Status in der DB, an den man dran kommt, indem man die Seite neu lädt. Da steht dann sowas drin wie:

creating database backup (action 1 of 2)


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#3 07.01.2020 15:28:00

stefanek
Developer

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Ich finde diese Entwicklung klasse.
Wäre super, wenn man bei den Modulen auswählen, bzw. abwählen könnte. Da es bei einigen Modulen wenig Sinn gibt, ein Backup von ihnen zu machen (wie CKEditor z.B.).
Oder alternativ, könnte man die z.B. in der Unterverzeichnisse textarea irgendwie per Hand eintragen? Also unterhalb von .git (im obigen Screenshot).

Gruß,
Christian


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#4 07.01.2020 16:39:57

webbird
Administrator

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Das ist genau der Punkt, auf den ich hinaus wollte. Die Einstellungen beziehen sich auf ALLE Sicherungen (und ja, natürlich kann man die Liste anpassen), aber vielleicht will man ja hier mal wirklich ALLES sichern und dort mal nur einen Teil. Da wäre es halt dann etwas mühselig, wenn man erst die Einstellungen ändern müßte, dann einen Job erstellen, diesen ausführen, und dann alles wieder zurück ändern...

Andererseits wird es halt auch sehr komplex, wenn man z.B. bei den Modulen gezielt auswählen muß, welche man sichern oder auch nicht sichern möchte. Damit wären wir wieder bei einem Experten-Modus.


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#5 07.01.2020 16:55:39

stefanek
Developer

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Verstehe.
Ja gut. Andererseits, wenn das gut und ohne Timeouts funktioniert, ist es auch iO alles zu zippen. Dauert halt etwas länger.

Ich habe mal so 3rd Party Tools mal ausprobiert die per CronJob Verzeichnisse und DB Inhalte gesichert und dann abgelegt haben. Bei dieser Cron-Job Lösung, ergibt es aber nur dann richtig Sinn, wenn man per Script auch checkt, ob die checksum der zu sichernden Dateien sich geändert hat. Gibt's ja auch viele Seiten wo viele Monate (selbst Jahre) sich nichts dran verändert.


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#6 07.01.2020 17:53:40

webbird
Administrator

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Ja, Checksummen werden auch erstellt, sowohl für die Dateien als auch für die Datenbank-Inhalte. (Eine der Grundfunktionen bei syncData "Original".) Spielt nur bei der Sicherung noch keine Rolle, sondern erst beim Synchronisieren. Ich bin ja noch beim Sichern. wink


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

Liked by:

stefanek

#7 07.01.2020 18:48:36

webbird
Administrator

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

So, jetzt kann man auch auf der Übersichtsseite sehen, was im jeweiligen Job gesichert wird. Icon-Beschriftung als Tooltip, ansonsten von links nach rechts:

Datenbank, pages, media, Module, Templates

attachment.php?item=2135&download=1


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

Liked by:

florian, stefanek

#8 09.01.2020 11:48:17

webbird
Administrator

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Und weiter geht's auch an anderer Stelle...

attachment.php?item=2143&download=1


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

Liked by:

ice, stefanek

#9 10.01.2020 09:35:31

webbird
Administrator

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Man kann jetzt auch Dateiendungen aus der Sicherung ausnehmen. smile

Standard könnte z.B. sein:
.zip
.exe
.log

Weitere, wie z.B. .mov oder andere, die "riesig" sein können (und sich noch dazu kaum noch komprimieren lassen), kann dann ja jeder bei Bedarf selbst hinzufügen.


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#10 20.01.2020 15:23:28

webbird
Administrator

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Es gibt jetzt einen "Poll Timer", der das Statusfeld alle 15 Sekunden aktualisiert:

attachment.php?item=2161&download=1


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#11 21.01.2020 17:21:44

webbird
Administrator

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Zum Thema Cron / Zeitplan

Prinzipiell gibt es zwei Möglichkeiten, die Sicherung zeitgesteuert auszuführen:

1. Per "echtem" Cronjob (unter Windows "Aufgabe")
2. Per "integriertem" Cronjob

Beide haben natürlich ihre Haken und Ösen.

Echter Cronjob

Je nachdem, was man so zu zahlen bereit ist, kann es durchaus sein, dass einem beim Provider Cronjobs zur Verfügung stehen. Wer das nicht hat, kann externe Dienste dafür in Anspruch nehmen, die es teilweise kostenlos gibt. Im Fall von syncData würde das so funktionieren, dass man dem Cron-Dienst die URL der backup.php gibt; dieser wird zur Absicherung ein Key angehängt. Zu bedenken ist allerdings, dass dieser Key unter Umständen "abgelauscht" werden kann. Ich plane derzeit nicht, den Key irgendwie zusätzlich zu verschlüsseln, da ein Angreifer hiermit maximal eine Datensicherung auslösen kann. Natürlich ist das durchaus geeignet, um eine DDos Attacke auszuführen, aber für den Moment schätze ich das Risiko als relativ gering ein. Ich empfehle allerdings dringend die Verwendung von https.

Vorteil:
Der Zeitplan wird auch dann korrekt berücksichtigt, wenn zu dieser Zeit gerade keine Zugriffe auf die Seite stattfinden.

Nachteil:
Siehe oben, man muss ggfs. eine URL an einen externen Dienst herausgeben.

Integrierter Cronjob

Da so ein CMS nicht ununterbrochen läuft - es ist kein Dämon oder Dienst -, muss man bei einem integrierten Cronjob mehr oder weniger darauf hoffen, dass zeitnah zur Ausführungszeit irgendein Zugriff auf die Seite stattfindet. Nun kann beispielsweise durch ein Droplet eine Aktion ausgelöst werden, die nachschaut, ob eine Ausführung ansteht. Wenn ja, wird die Datensicherung angestartet und die Ausführung vermerkt.

Vorteil:
Alles läuft intern ab, man muss keine URL herausgeben.

Nachteil:
Abgesehen von der Unsicherheit, ob und wann die Datensicherung tatsächlich stattfindet, löst ein einfacher Besucher (egal ob "echte Person" oder z.B. ein Crawler) eine unter Umständen langwierige Aktion aus. Zudem können sich verschiedene Zeitpläne in die Quere kommen, wenn man z.B. sowohl einen täglichen als auch einen monatlichen Job hat, die beide fällig wären; da kann dann halt nur einer laufen. Wenn das nicht wirklich zuverlässig klappt, legt man unter Umständen den ganzen Webserver lahm - was der Provider bestimmt nicht mit Begeisterung aufnimmt.

Kombiniere...

Die Lösung könnte sein, beides zu kombinieren. Per externem Cronjob irgendeine Seite aufrufen lassen (=kein Key nötig), die das Droplet beinhaltet, das nachguckt, ob ein Job ansteht. Die Seite selbst kann versteckt sein, so dass sie kein normaler Besucher so einfach zu sehen kriegt. Natürlich sollte vermieden werden, dass Google & Co. die Seite finden, das ist aber Aufgabe von WBCE bzw. der lokalen Einstellungen, nicht des Moduls.

In diesem Sinne...

attachment.php?item=2165&download=1


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

Liked by:

florian

#12 21.01.2020 18:10:40

florian
Administrator

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Ich habe mit cronjob.de gute Erfahrungen gemacht; die Kosten für den Service sind sehr überschaubar (0,99€/Monat).
Bei Webhostingpaketen sind cronjobs längst kein besonders exklusives Vergnügen mehr, schon im kleinsten Webhosting-Vertrag bei Goneo, Alfahosting und Netcup (nur mal als Beispiel) sind 1-2 Cronjobs inklusive. Bei All-Inkl im Tarif Privat Plus (dem "mittelgroßen" Tarif für 7,95 €/Mon.) gibt es 25 Cronjobs inklusive.

Beitrag geändert von florian (21.01.2020 18:50:49)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Liked by:

better-work

#13 21.01.2020 18:13:46

webbird
Administrator

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Das ist dann sicherlich die bevorzugte Lösung.


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#14 21.01.2020 18:57:27

Slugger
Mitglied

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Bin noch am überlegen.... meine Meinung kommt später


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Online

#15 31.01.2020 17:36:33

webbird
Administrator

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Zwischenstand: Ich habe heute mal ein Recover probiert. Das war so weit erfolgreich. Es gibt beim Recover allerdings einige wirklich wichtige Punkte. Szenario in meinem Fall: Datenbank und 'pages'-Verzeichnis in der Sicherung, sonst nichts, also weder Module noch Templates. Recover auf eine frisch installierte, also leere, WBCE 1.4.2 Portable.

Datenbank und Dateien wurden korrekt wiederhergestellt, da ich aber im Quellsystem keines der mitgelieferten Standardtemplates verwendet habe, war die Seite hinterher "weiß". Zudem fehlen natürlich etliche Module, wie etwa LeafletMaps.

Ganz wichtig auch: So eine Datenbank-Vollsicherung betrifft auch die "users"-Tabelle. Nach dem Recover flog ich also aus dem Backend, da mein Kennwort nicht mehr stimmte.

Alles so weit korrekt und wie zu erwarten, muß man aber auf dem Schirm haben.

Recover ist nichts für Weicheier! lol


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

Liked by:

florian, berny, better-work

#16 25.02.2020 13:14:43

better-work
Mitglied

Re: syncData - Sichern, Wiederherstellen, Synchronisieren (wip)

Ein durchaus sehr interessanter Ansatz.
Ich mache es ja bisher mit manuellen Backup-Skripten, die dann halt die Datenbank und das gesamte Verzeichnis sichern. Aber Deine Lösung hat natürlich ein paar entscheidende Vorteile.
Denn bisher muss ich die Datenbank dann immer über das Backend des Hosters wieder einspielen. Auch die Verzeichnisse müssen bei meiner "Lösung" per WebFTP wiederhergestellt werden, nicht gerade optimal...
Außerdem besteht natürlich immer das Problem des Server-Timeouts, das greift übrigens auch bei Cronjobs...
Deine Lösung werde ich mal testen!


Gruß Jörg

Offline

Fußzeile des Forums

up