1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Webmaster Allgemein

Datenbank mit Cronjob auf dem Webspace sichern

  • Dragosius
  • 20. April 2023 um 17:59
  • Unerledigt
  • Dragosius
    6
    Dragosius
    Mitglied
    Reaktionen
    28
    Punkte
    288
    Beiträge
    46
    • 20. April 2023 um 17:59
    • #1

    Hallo,

    eventuell ist mein Anliegen etwas komisch, aber mir persönlich ist das relativ wichtig.

    Ich sichere ca 3-4 alle Dateien meiner Webseiten via FTP und dort wird auch täglich die Datenbank gespeichert, so dass ich diese direkt mit sichere.

    Nur seit ich den Hoster wechseln musste, kann diese Backup-Script so nicht mehr genutzt werden.

    Daher wollte ich fragen, wie ich folgende Anforderung realisieren kann?

    Ein Script wird mit einem Cronjob aufgerufen, welches die Datenbank auf dem Webspace speichert wo es ausgeführt wurde. (Am Besten in einem Unterordner)


    Vielen Dank

  • AquaDev
    6
    AquaDev
    Mitglied
    Reaktionen
    7
    Punkte
    337
    Trophäen
    1
    Beiträge
    63
    • 20. April 2023 um 18:10
    • #2

    Also du kannst doch bestimmt ein Bash Skript schreiben, der die Datenbank holt und dann diese mit ftp an deinen Server schickt? :thinking_face: Du kannst sogar die destination angeben (Unterordner).

  • AquaDev
    6
    AquaDev
    Mitglied
    Reaktionen
    7
    Punkte
    337
    Trophäen
    1
    Beiträge
    63
    • 20. April 2023 um 18:12
    • #3

    Jedoch gibt es spezielle Achtung zu geben bei dem Speichern/Backupen von Datenbanken. Wenn gerade Transaktionen oder andere Prozesse laufen und du da was rauskopierst kann es Data corruption geben, was du unbedingt vermeiden möchtst.

    Es gibt zwei Möglichkeiten das Problem zu lösen:
    1. Du stoppst die Datenbank, kopierst die Files und startest die Datenbank wieder

    2. (besser) Du connectest zur Datenbank und lasst dir einen SQL Dump erstellen und den tust du dann auf deinen FTP Server.

    So hast du keine Data corruption und kannst deine Datenbank sicher backupen

  • Dragosius
    6
    Dragosius
    Mitglied
    Reaktionen
    28
    Punkte
    288
    Beiträge
    46
    • 20. April 2023 um 18:17
    • #4

    Die 2. Variante wäre für mich komplett fein.

    Ich kann das alleine leider nicht realisieren und bin mit dem Wunsch vermutlich auch etwas speziell.

  • AquaDev
    6
    AquaDev
    Mitglied
    Reaktionen
    7
    Punkte
    337
    Trophäen
    1
    Beiträge
    63
    • 20. April 2023 um 18:23
    • #5

    Also happert es an deinem Wissen oder an deinen technischen Möglichkeiten?

  • Dragosius
    6
    Dragosius
    Mitglied
    Reaktionen
    28
    Punkte
    288
    Beiträge
    46
    • 20. April 2023 um 18:51
    • #6

    Die technischen Voraussetzungen sollten ja nicht so hoch sein.

    Ich habe den nötigen Webspace und kann auch Cronjobs ausführen.

    Somit fehlt mir nur noch ein Script, welches das realisieren kann. :smiling_face_with_halo:

  • flyingtable07
    18
    flyingtable07
    Mitglied
    Reaktionen
    59
    Punkte
    3.564
    Trophäen
    1
    Beiträge
    678
    • 20. April 2023 um 19:25
    • #7

    Dieses kurze script, könntest du an deine Bedürfnisse anpassen und dann als cronjo ausführen lasssen. Es meldet sich in der Datenbak an und exportiert diese. anschlieend wird die exportierte datei direkt auf einen ftp server hochgeladen. ftp client muss dafür installiert sein.

    Bash
    #!/bin/bash
    
    MYSQL_USER="username"
    MYSQL_PASSWORD="password"
    MYSQL_DATABASE="database_name"
    
    FILENAME="backup.sql"
    
    FTP_SERVER="ftp.example.com"
    FTP_USER="ftp_username"
    FTP_PASSWORD="ftp_password"
    
    mysqldump --user=$MYSQL_USER --password=$MYSQL_PASSWORD $MYSQL_DATABASE > $FILENAME
    
    ftp -n $FTP_SERVER <<END_SCRIPT
    quote USER $FTP_USER
    quote PASS $FTP_PASSWORD
    binary
    put $FILENAME
    quit
    END_SCRIPT
    
    exit 0
    Alles anzeigen
  • AquaDev
    6
    AquaDev
    Mitglied
    Reaktionen
    7
    Punkte
    337
    Trophäen
    1
    Beiträge
    63
    • 20. April 2023 um 19:28
    • #8

    Habe das hier gerade spontan zusammengewürfelt. Musst die Values noch anpassen und dann mal manuell ausprobieren mit . backup.sh

    backup.sh :

    Code
    #!/usr/bin/env sh
    
    apt-get update
    apt-get -y mysql-client gzip openssh-client openssh-server
    
    # Config values
    DB_NAME=database-name
    DATE=`date +"%Y%m%d"`
    FILE_NAME=$DBNAME-${DATE}.sql
    
    # Create sql dump from database
    mysqldump --opt --user=<user> --password=<password> $DB_NAME > $FILE_NAME
    gzip $FILE_NAME
    
    # Upload to FTP server
    scp $FILE_NAME <username>@<hostname>:<destination-path>
    Alles anzeigen
  • AquaDev
    6
    AquaDev
    Mitglied
    Reaktionen
    7
    Punkte
    337
    Trophäen
    1
    Beiträge
    63
    • 20. April 2023 um 19:30
    • #9
    Zitat von flyingtable07

    Dieses kurze script, könntest du an deine Bedürfnisse anpassen und dann als cronjo ausführen lasssen. Es meldet sich in der Datenbak an und exportiert diese. anschlieend wird die exportierte datei direkt auf einen ftp server hochgeladen. ftp client muss dafür installiert sein.

    Bash
    #!/bin/bash
    
    MYSQL_USER="username"
    MYSQL_PASSWORD="password"
    MYSQL_DATABASE="database_name"
    
    FILENAME="backup.sql"
    
    FTP_SERVER="ftp.example.com"
    FTP_USER="ftp_username"
    FTP_PASSWORD="ftp_password"
    
    mysqldump --user=$MYSQL_USER --password=$MYSQL_PASSWORD $MYSQL_DATABASE > $FILENAME
    
    ftp -n $FTP_SERVER <<END_SCRIPT
    quote USER $FTP_USER
    quote PASS $FTP_PASSWORD
    binary
    put $FILENAME
    quit
    END_SCRIPT
    
    exit 0
    Alles anzeigen

    Sieht auch ganz oke aus. Weiss nicht was die ganzen quote und binary cmds machen xD aber gut.

  • Tom
    5
    Tom
    Mitglied
    Reaktionen
    21
    Punkte
    221
    Beiträge
    40
    • 20. April 2023 um 19:30
    • #10

    Das Script kann man nehmen....wenn du denn auch eine mysql datenbank nutzt.

  • AquaDev
    6
    AquaDev
    Mitglied
    Reaktionen
    7
    Punkte
    337
    Trophäen
    1
    Beiträge
    63
    • 20. April 2023 um 19:31
    • #11

    Guter Einwand :thinking_face: Hab ich mir gar keine Gedanken darüber gemacht.. ups

  • flyingtable07
    18
    flyingtable07
    Mitglied
    Reaktionen
    59
    Punkte
    3.564
    Trophäen
    1
    Beiträge
    678
    • 20. April 2023 um 20:26
    • #12
    Zitat von AquaDev

    Sieht auch ganz oke aus. Weiss nicht was die ganzen quote und binary cmds machen xD aber gut.

    Keine Ahnung, wie genau das mit dem FTP geht wusste ich auch nicht, deshalb hab ich ein code schnipped rein kopiert

  • flyingtable07
    18
    flyingtable07
    Mitglied
    Reaktionen
    59
    Punkte
    3.564
    Trophäen
    1
    Beiträge
    678
    • 20. April 2023 um 20:26
    • #13
    Zitat von Tom

    Das Script kann man nehmen....wenn du denn auch eine mysql datenbank nutzt.

    ups stimmt xD
    Dragosius was für eine db hast du?

  • Dragosius
    6
    Dragosius
    Mitglied
    Reaktionen
    28
    Punkte
    288
    Beiträge
    46
    • 20. April 2023 um 20:29
    • #14

    Würde das ganze auch ohne FTP gehen, denn die Datei liegt ja schon auf dem richtigen Webspace?

    Dann muss ich mich nicht extra per FTP verbinden.

    Datenbank ist bei mir MariaDB im Einsatz.

  • Online
    Syntafin
    27
    Syntafin
    LISTstack Dev
    Reaktionen
    498
    Punkte
    7.773
    Trophäen
    2
    Beiträge
    1.412
    • 20. April 2023 um 20:42
    • #15

    Ich muss echt Mal den Datenbank Mensch fragen, wie wir es mit den Backups machen :thinking_face: vor allem da wir ja auch noch eine Mastodon Instanz haben die gesichert werden will

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • AquaDev
    6
    AquaDev
    Mitglied
    Reaktionen
    7
    Punkte
    337
    Trophäen
    1
    Beiträge
    63
    • 20. April 2023 um 20:45
    • #16
    Zitat von Dragosius

    Würde das ganze auch ohne FTP gehen, denn die Datei liegt ja schon auf dem richtigen Webspace?

    Dann muss ich mich nicht extra per FTP verbinden.

    Datenbank ist bei mir MariaDB im Einsatz.

    Also warte.. du hast auf dem gleichen Webspace die DB auf dem du auch das Backup haben willst? Also du kopierst eig nur vom 1 Ordner zum anderen?

  • Online
    Syntafin
    27
    Syntafin
    LISTstack Dev
    Reaktionen
    498
    Punkte
    7.773
    Trophäen
    2
    Beiträge
    1.412
    • 20. April 2023 um 20:46
    • #17

    So schrieb er es ja im OP.

    Die Zeile mit FTP/SCP ist also doch unnötig?

    Also so wie ich es verstanden habe, will er ja das von Hand kopieren auf den eigenen PC.

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • flyingtable07
    18
    flyingtable07
    Mitglied
    Reaktionen
    59
    Punkte
    3.564
    Trophäen
    1
    Beiträge
    678
    • 20. April 2023 um 20:46
    • #18
    Zitat von Dragosius

    Würde das ganze auch ohne FTP gehen, denn die Datei liegt ja schon auf dem richtigen Webspace?

    Dann muss ich mich nicht extra per FTP verbinden.

    Datenbank ist bei mir MariaDB im Einsatz.

    Klar,
    Du kanst einfach im bash script den upload Teil wegmachen un statdessen den dateipfad anpasen.
    ungefär so:

    Code
    MYSQL_USER="username"
    MYSQL_PASSWORD="password"
    MYSQL_DATABASE="database_name"
    
    FILENAME="/var/www/html/backup.sql"
    
    
    mysqldump --user=$MYSQL_USER --password=$MYSQL_PASSWORD $MYSQL_DATABASE > $FILENAME

    So würde die Datei immer direkt auf dem webspace gespeichert werden.

  • AquaDev
    6
    AquaDev
    Mitglied
    Reaktionen
    7
    Punkte
    337
    Trophäen
    1
    Beiträge
    63
    • 20. April 2023 um 20:48
    • #19

    Jetzt bin ich verwirrt..

    Wo ist die Datenbank? Wo willst du das Backup hinspeichern?

    Braucht es nun wirklich FTP?

    Also wenn die DB auf dem gleichen Server kopiert wird, dann ist das kein Backup.. dann ist das nur zusätzlich befüllter Speicherplatz.

  • Online
    Syntafin
    27
    Syntafin
    LISTstack Dev
    Reaktionen
    498
    Punkte
    7.773
    Trophäen
    2
    Beiträge
    1.412
    • 20. April 2023 um 20:48
    • #20

    Direkt auf dem Webspace, frei für jeden zugänglich fände ich aber nicht so gut wenn man Datenschutz bedenkt.

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung