1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • 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
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Dragosius
    Punkte
    289
    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
    Punkte
    337
    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? :/ Du kannst sogar die destination angeben (Unterordner).

  • AquaDev
    Punkte
    337
    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
    Punkte
    289
    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
    Punkte
    337
    Beiträge
    63
    • 20. April 2023 um 18:23
    • #5

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

  • Dragosius
    Punkte
    289
    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. :saint:

  • flyingtable07
    Punkte
    3.580
    Beiträge
    681
    • 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
    Punkte
    337
    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
    Punkte
    337
    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
    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
    Punkte
    337
    Beiträge
    63
    • 20. April 2023 um 19:31
    • #11

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

  • flyingtable07
    Punkte
    3.580
    Beiträge
    681
    • 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
    Punkte
    3.580
    Beiträge
    681
    • 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
    Punkte
    289
    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.

  • Syntafin
    Punkte
    7.925
    Beiträge
    1.439
    • 20. April 2023 um 20:42
    • #15

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

  • AquaDev
    Punkte
    337
    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?

  • Syntafin
    Punkte
    7.925
    Beiträge
    1.439
    • 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.

  • flyingtable07
    Punkte
    3.580
    Beiträge
    681
    • 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
    Punkte
    337
    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.

  • Syntafin
    Punkte
    7.925
    Beiträge
    1.439
    • 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.

  1. Datenschutzerklärung
  2. Impressum