So sichern Sie automatisch die MySQL-Datenbank und den Webserver im FTP-Repository


    Dieser Artikel enthält eine der ältesten von NIX Craft im Jahr 2006 vorgeschlagenen Methoden . Meiner Meinung nach ist der Artikel insofern wertvoll, als er sozusagen eine grundlegende Gedankenlinie enthält, in der ein Anfänger oder ein „zufälliger“ (zusätzlich zu anderen Aufgaben zur Verwaltung von Datenbanken gezwungener) Systemadministrator folgen kann.
    Meiner Meinung nach entspricht ein Verständnis der in diesem Artikel dargelegten Grundprinzipien dem Verständnis der Prinzipien der Herstellung von Pilaw. Sie können mit Pilaw in einem ziemlich weiten Bereich experimentieren; Die Hauptsache ist, den Reis nicht in klebrigem Brei zu kochen und ihn nicht in Pilaw anstelle von fettem weichem Fleisch zu stecken, es ist nicht klar, was. Ebenso die MySQL-Datenbank-Backup- StrategieDie Grundlagen - eine Kombination aus einer vollständigen Sicherung mit inkrementellen Sicherungen, die Festlegung der Häufigkeit einzelner Aufgaben und die Kontrolle ihrer korrekten Ausführung - bleiben jedoch unabhängig von den verwendeten Tools unverändert.
    Der Originalartikel ist hier zu finden: http://www.cyberciti.biz/tips/how-to-backup-mysql-databases-web-server-files-to-a-ftp-server-automatically.html . Als nächstes kommt der Übersetzungstext selbst.

    * * *

    Dies ist eine einfache Sicherungslösung für Administratoren, die ihre eigenen Webserver und MySQL-Datenbankverwaltungssysteme auf dedizierten oder VPS-Servern ausführen. Die meisten spezialisierten Hosting-Anbieter stellen dem Benutzer Sicherungsdienste für einen dedizierten Netzwerkspeicher (NAS) oder einen FTP-Server zur Verfügung. Diese Anbieter binden den Benutzer über ein privates virtuelles Netzwerk an ihre überfunktionalen Speicherarrays. Da ich viele Serverprojekte verwalten konnte, bin ich bereit, stattdessen meine eigene automatisierte Lösung anzubieten. Wenn Sie nur ein Shell-Skript möchten, klicken Sie hier (Sie müssen nur die entsprechenden Eingaben machen und es wird ein FTP-Backup-Skript für Sie erstellen. Sie können auch meinen PHP-Skript-Generator-Code herunterladen).

    Inkrementelle Sicherung mit dem Dienstprogramm tar

    Sie können Backups auf einem Magnetband oder Streamer erstellen (oder mit jeder Datei wie mit einem Streamer oder Band arbeiten). Heutzutage verliert diese Lösung jedoch an Funktionalität. Mit dem GNU-Dienstprogramm tar können Sie inkrementelle Sicherungen mit der Option -g erstellen. Im folgenden Beispiel erstellt der Befehl tar inkrementelle Kopien der Verzeichnisse / var / www / html, / home und / etc. Führen Sie es in der Konsole aus:
    # tar -g /var/log/tar-incremental.log -zcvf /backup/today.tar.gz / var / www / html / home / etc
    Hier erstellt / zeigt / extrahiert der Schalter -g ein neues ( inkrementelle) Informationen aus der Sicherung und speichert sie in der Datei /var/log/tar-incremental.log.

    Erstellen von MySQL-Datenbank-Backups

    Клиентское приложение mysqldump предназначено для дампа или резервного копирования баз данных (БД), таблиц и отдельных данных MySQL. Например, следующая команда покажет список баз данных в конкретной СУБД:
    $ mysql -u root -h localhost -p -Bse 'show databases'
    Результат вывода (приведён для примера):
    brutelog
    cake
    faqs
    mysql
    phpads
    snews
    test
    tmp
    van
    wp
    Теперь можно создать резервную копию каждой из БД с помощью команды mysqldump; например, для базы данных faqs команда может иметь следующий вид:
    $ mysqldump -u root -h localhost -pmypassword faqs | gzip -9 > faqs-db.sql.gz

    Создание простой схемы резервного копирования для вашего проекта

    Der Hauptvorteil der Verwendung von Remote-Netzwerkspeicher (FTP oder NAS) zum Speichern von Sicherungen besteht im zusätzlichen Schutz vor Datenverlust. Sie können mehrere Protokolle zum Übertragen von Sicherungen verwenden:
    1. FTP
    2. Ssh
    3. RSYNC
    4. Eine Vielzahl von kommerziellen Lösungen

    Ich möchte hier nur eine Lösung für FTP-Backup beschreiben. Die Idee hinter der Sicherungsstrategie, die dieser Lösung zugrunde liegt, ist folgende:
    • Erstellen Sie jeden Sonntag gegen Mitternacht eine vollständige Sicherung unserer Datenbank (dh sonntags wird eine Sicherungskopie des gesamten Inhalts des DBMS erstellt).
    • Während der Woche werden nur die geänderten Daten gesichert (inkrementelle Sicherung).
    • Der Sicherungszyklus wird alle 7 Tage wiederholt.


    Parameter unserer Testkonfiguration

    Unser Server ===> ftp / nas Server
    IP: 202.54.1.10 ===> 208.111.2.5
    Nehmen wir für den Test die folgenden detaillierten Informationen zu unserem FTP-Account an:
    • FTP-Server-IP: 208.111.2.5
    • FTP-Kontoname: nixcraft
    • FTP-Account-Passwort: Passwort
    • FTP-Verzeichnis: / home / nixcraft (oder /)

    Orte, an denen die Backups
    gespeichert werden : => / home / nixcraft / full / tt-mm-jj / files - full;
    => / home / nixcraft / incremental / TT-MM-JJ / files - incremental.
    Hier sind TT-MM-JJ die Sicherungsdaten.

    Automatische Sicherung mit dem Dienstprogramm tar

    Jetzt können Sie MySQL-Dateien und -Datenbanken mit den Befehlen tar und mysqldump sichern. Es ist Zeit, den gesamten Vorgang ein für alle Mal zu automatisieren, indem Sie diese Befehle in einem einzigen Skript verknüpfen.
    1. Zunächst sammelt unser Skript alle Daten sowohl vom MySQL-Server als auch vom Dateisystem in einem temporären Verzeichnis namens / backup. Verwenden Sie dazu den Befehl tar.
    2. Anschließend stellt das Skript über FTP eine Verbindung zu Ihrem Speicherserver her und erstellt die oben beschriebene Verzeichnisstruktur.
    3. Das Skript speichert Dateien aus dem Verzeichnis / backup auf dem FTP-Server.
    4. Die temporären Dateien werden aus dem Verzeichnis / backup entfernt.
    5. Wenn die Sicherung auf FTP aus irgendeinem Grund unterbrochen wird oder fehlschlägt, werden Sie vom Skript per E-Mail benachrichtigt.

    Um das Skript korrekt zu verwenden, müssen die folgenden Pakete installiert sein (das Dienstprogramm ncftp wird als FTP-Client verwendet):
    • ncftp
    • mysqldump
    • GNU tar

    Nachfolgend finden Sie eine Auflistung unseres Beispiels mit dem Namen ftpbackup.sh:
    #! / Bin / sh
    # System + MySQL-Sicherungsskript
    # Vollständiger Sicherungstag - So (Rest des Tages inkrementelle Sicherung durchführen)
    # Copyright © 2005-2006 nixCraft < www.cyberciti .biz / fb >
    # Dieses Skript ist unter der GNU GPL Version 2.0 oder höher lizensiert.
    # Automatisch generiert von bash.cyberciti.biz/backup/wizard-ftp-script.php

    ### System Setup ###
    DIRS = "/ home / etc / var / www "
    BACKUP = / tmp / backup. $$
    NOW = $ (Datum +"% d-% m-% Y ")
    INCFILE =" / root / tar-inc-backup.dat "
    DAY = $ ( Datum + "% a")
    FULLBACKUP = "Sun"
    ### MySQL Setup ###
    MUSER = "admin"
    MPASS = "mysqladminpassword"
    MHOST = "localhost"
    MYSQL = "$ (welches mysql)"
    MYSQLDUMP = "$ (welches mysqldump)"
    GZIP = "$ (welches gzip)"
    ### FTP-Server-Setup ###
    FTPD = "/ home / vivek / incremental "
    FTPU =" vivek "
    FTPP =" ftppassword "
    FTPS =" 208.111.11.2 "
    NCFTP =" $ (which ncftpput) "
    ### Other stuff ###
    EMAILID =" admin@theos.in "
    ### Start Backup for Dateisystem ###
    [! -d $ BACKUP] && mkdir -p $ BACKUP ||:
    ### Überprüfen Sie, ob eine vollständige Sicherung erstellt werden soll ###
    if ["$ DAY" == "$ FULLBACKUP"]; dann
    FTPD = "/ home / vivek / full"
    FILE = "fs-full- $ NOW.tar.




    tar -g $ INCFILE -zcvf $ BACKUP / $ FILE $ DIRS
    fi
    ### Starte MySQL Backup ###
    # Hole alle Datenbanknamen
    DBS = "$ ($ MYSQL -u $ MUSER -h $ MHOST -p $ MPASS -Bse 'show databases') "
    für db in $ DBS
    do
    FILE = $ BACKUP / mysql- $ db. $ NOW - $ (Datum +"% T "). gz
    $ MYSQLDUMP -u $ MUSER -h $ MHOST -p $ MPASS $ db | $ GZIP -9> $ FILE
    done
    ### Sicherung mit FTP sichern
    ### #Starten Sie die FTP-Sicherung mit ncftp
    ncftp -u "$ FTPU" -p "$ FTPP" $ FTPS < mkdir $ FTPD
    mkdir $ FTPD / $ NOW
    cd $ FTPD / $ NOW
    lcd $ BACKUP
    mput * EOF
    beenden ### Herausfinden, ob die FTP-Sicherung fehlgeschlagen ist oder nicht ### if ["$?" == "0"]; dann rm -f $ BACKUP / * else T = / tmp / backup.fail echo "Datum: $ (Datum)"> $ T echo "Hostname: $ (Hostname)" >> $ T echo "Sicherung fehlgeschlagen" >> $ T- Mails "BACKUP FAILED" "$ EMAILID" <$ T rm -f $ T fi













    Wie stelle ich die automatische periodische Ausführung des Backup-Skripts mit dem Dienstprogramm cron ein?


    Fügen Sie einfach die Cron-Task mit den erforderlichen Zeit- und Frequenzparametern hinzu: 13 0 * * * /home/admin/bin/ftpbackup.sh> / dev / null 2> & 1

    Als kurzes Nachwort vom Übersetzer.
    Da Datensicherungsaufgaben zu den am häufigsten besorgniserregenden Problemen für den Systemadministrator gehören, kann sich die Anwendbarkeit eines erfolgreichen Skripts in diesem Bereich auch ohne Änderungen und Ergänzungen für 5, 10 oder 20 Jahre als sehr hoch herausstellen. Insbesondere ein Skript, das dem im Artikel beschriebenen ähnelt und ursprünglich nur unter Windows erstellt wurde, arbeitete mehrere Jahre auf einem der Server unseres Instituts, bis wir es durch ein moderneres und fortschrittlicheres GUI-Programm ersetzten.

    Es ist klar, dass seriöse Administratoren solche Skripte ohne großen Aufwand selbst erstellen können. Mein Ziel war es, die Logik aufzuzeigen, auf der wir Wissenschaftler, die aus bekannten wirtschaftlichen Gründen gezwungen waren, mit Computerdatenbanken zu arbeiten, lernten, Aufgaben für die Interaktion mit dem Betriebssystem und DBMS auf Befehlssprachenebene zu erstellen. Solche Benutzer, die nur Skripte und Datenbankverwaltung beherrschen, können solche Beispiele äußerst nützlich sein.

    Das sind sozusagen ideologische Überlegungen. Eine fremde Schrift kann ziemlich genau mit einer Schachskizze verglichen werden, die ein bestimmtes Problem exponentiell löst. Klassische Lösungen wie die oben beschriebene können zu einem bewährten Feld für unabhängige Experimente werden. Sie zeigen die Logik und Denkrichtung für diejenigen, die mit der Funktionalität von Produkten mit einer grafischen Benutzeroberfläche nicht zufrieden sind und versuchen möchten, die volle Leistung von Batch-Befehlen zum Leben zu erwecken. Daher ist es für mich nicht so wichtig, wie lange es her ist, oder umgekehrt, wie effektiv die vorgeschlagene Lösung ist, wie stark ihre interne Logik und Erklärbarkeit für jeden der Punkte ist. Auf dieser Basis können Sie ganz einfach Ihre eigene "Skizze" für ein anderes DBMS oder einen anderen Aufgabenbereich erstellen. Die einmal festgelegte allgemeine Logik des Denkens wird in Zukunft eine wertvolle Ergänzung des Arsenals des Administrators oder Entwicklers sein.

    Das einfache Verständnis, das Erfüllen der angegebenen Grundbedingungen (die zu Beginn des Artikels besprochen wurden) und die geringe Größe dieses Skripts ermöglichen es mir, es als Grundlage für verschiedene Experimente mit der Sicherung von MySQL-Daten zu empfehlen. Na ja, und wenn diese "Studie" völlig veraltet ist - na ja, vielleicht ist das auch so. Es wird interessant sein, es mit den Lösungen zu vergleichen, die moderne Programmierer und Systemadministratoren jetzt für dieselbe Aufgabe anbieten. Willkommen zu den Kommentaren mit Ihren eigenen Skripten, mit denen Sie das oben genannte Produkt an Ihrem Gürtel befestigen können.

    Jetzt auch beliebt: