tutorials.de Buch-Aktion 05/2012
Seite 1 von 3 123 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
35
ZUGRIFFE
1578
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von zkmlch
    zkmlch zkmlch ist offline Master of Disaster
    Registriert seit
    Sep 2011
    Ort
    Uster / ZH
    Beiträge
    51
    Hallo liebe (noch) Freunde

    Noch, desswegen weil Ich nun ein Problem vorstellen möchte welches für mich ein ganz schweres & heisses Eisen darstellt.Ich denke das eine genaue Lösung meines Problems vielen Leuten im Netz helfen wird, den Ich habe diesbezüglich nichtmal Ansatzweise was in der Google-Welt gefunden.

    Ich schildere euch kurz mein Projekt:

    In zwei weiteren Treads habe Ich bereits kleinere Probleme ansatzweise lösen können. Es geht darum einen Downloadmanager zu erstellen.

    Meine Netzwerkinfrastruktur:

    masterwebserver222
    192.168.4.222
    Debian 6.0

    slavewebserver223
    192.168.4.223
    Debian 6.0

    slavewebserver224
    192.168.4.224
    Debian 6.0

    slavewebserver225
    192.168.4.225
    Debian 6.0

    slavewebserver226
    192.168.4.226
    Debian 6.0

    Bereits realisierte Module:

    Admin Interface mit voll funktionsfähigem CRUD
    MD5 Filechecking (Prüft auf Duplikate)
    Servercheck

    Der Masterserver übernimmt folgende Aufgaben:

    Mirrorverteilung auf alle Slaveserver inkl MySQL DB Backup
    Alle Downloads egal von welchem server laufen über 192.168.4.222


    Folgende Punkte müssen im nächten und letzten Modul erfüllt werden:

    --> Falls der Masterserver aussteigt soll man per E-Mail benachrichtigt werden und es soll automatisch ein neuer Master gewählt werden. Zusätzlich soll bei Wartungsarbeiten an einem Server manuell im Admin Interface ein neuer Server bestimmt werden können.

    --> Jeder Server kann temporär die Rolle des Masters übernehmen und andere Slave Server mit seinen neusten Daten versorgen.

    --> Greift zum Beispiel Admin 1 auf das Adminpanel des slaveserver224 zu und verändert einige Dateien und fügt einen oder mehrere Datensätze der Datenbank hinzu, so erhält dieser Server automatisch die masterrolle und ist für die verteilung der Mirrors zuständig.

    --> Greift Admin 1 auf den slaveserver224 zu und wärend desssen möchte Admin 2 noch auf dem slaveserver226 einige änderungen machen so soll dem Admin 2 der Zugriff verwehr werden!

    --> Jeden Sonntag soll der Master automatisch mittels Cronjob seine Daten an die anderen Salves verteilen. dabei soll jeder der Server zuerst anhand seiner IP in der Datenbank nachschauen ob er Master ist, falls nicht soll er nichts machen.


    Wer weitere Informationen benötigt dem wird gerne Stoff geliefert... Ich wollte nicht zuviel schreiben da es sonst schon recht kompliziert ist.

    Wer mir zur Lösung dieses harten Brockens weiterhelfen kann wird mit Taschengeld belohnt... den dann hab Ichs geschaft!


    Gruss Patrick
    Geändert von zkmlch (11.10.11 um 13:09 Uhr)
     

  2. #2
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Nunja, her mit dem Taschengeld

    Das Konzept ist nicht neu, nennt sich Load-Balancing.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  3. #3
    Avatar von zkmlch
    zkmlch zkmlch ist offline Master of Disaster
    Registriert seit
    Sep 2011
    Ort
    Uster / ZH
    Beiträge
    51
    Hi saftmeister

    Über diesen Artikel bin Ich nocht nicht gestolpert jedoch liegt mir der Begriff eines Load-Balancer eher im sinne einer Last-Verteilung... Bei meinem "konzept" möchte Ich keine Last verteilen, sondern sexy Rollenspiele machen

    Gruss Patrick
    Geändert von zkmlch (10.10.11 um 17:18 Uhr)
     

  4. #4
    Avatar von zkmlch
    zkmlch zkmlch ist offline Master of Disaster
    Registriert seit
    Sep 2011
    Ort
    Uster / ZH
    Beiträge
    51
    Edit: Ich wollte noch sagen das ich NOCH nicht aud der suche nach Codeschnipseln bin sondern erstmal die notwendingen "Module" suche...
    • Was brauche ich für Scripts
    • Wie kann Ich das realisieren
    • Was brauch ich für Hard/Software Anforderungen

    Hat jemand damit schon Erfahrung gemacht oder mal was ähnliches Konzipiert oder gar umgesetzt?

    Besten Dank und Gruss Patrick
     

  5. #5
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Ich würde den MySQL-Kram nicht über Backup sondern über Replikation lösen. Dafür wurde sie "erfunden".

    Die Sache mit der Email-Meldung bei Server-Crash ist so ne Sache. Ist der Server komplett hinüber, kann er auch keine Email mehr senden. Du bräuchtest also einen Art Monitor-Server, der alle Server-Instanzen überwacht und ggf. entsprechend reagiert.

    Was kennzeichnet den Masterserver in deinem Kontext? Was macht einen Server zu einem Master-Server?

    Grundsätzlich kann man diese Art von Failover auch über DNS-Round-Robin implementieren - aber nur, wenn das über den Domain-Namen laufen soll.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  6. #6
    Avatar von zkmlch
    zkmlch zkmlch ist offline Master of Disaster
    Registriert seit
    Sep 2011
    Ort
    Uster / ZH
    Beiträge
    51
    Hi Saftmeister!

    Replikation der MySQL Datenbank mit Master und Slave Rollen fällt definitiv aus....

    Zu deiner Aussage:
    Dafür wurde sie "erfunden".
    Ich hab Sie jedenfalls nicht erfunden, ist bestimmt ein nettes Spielzeug aber für mein System nicht gebräuchlich. Ich erläutere dir dies, Anhand eines Fallbeispieles:

    Fall Datenbankfehler:

    Sollte aus irgendeinem Grunde ein Datenbankfehler auftreten oder ein Admin macht versehentlich falsche DB-Einträge so sind diese Fehler automatisch auf allen Servern vorhanden. Dies wäre der Super-Gau... Alle 5 Webseiten, die eigentlich Redundaz für den Besucher bieten sollen, fallen auf einmal aus. Ich bleibe somit bei meiner Lösung mit dem MySQL Dump und INSERT INTO....

    Gruss Patrick
     

  7. #7
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Ich sehe, du hast den Sinn und Zweck einer Replikation nicht verstanden. Aber gut...
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  8. #8
    Avatar von zkmlch
    zkmlch zkmlch ist offline Master of Disaster
    Registriert seit
    Sep 2011
    Ort
    Uster / ZH
    Beiträge
    51
    Dann klär mich doch auf... Habe zwar das Kapitel in der MySQL Referenz durchgelesen aber Ich wüsste nicht was an meiner Aussage falsch ist....
     

  9. #9
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Selbstverständlich kann man mittels MySQL-Dump die Datenbank kopieren. Bei wenigen Einträgen wird das gut funktionieren. Aber: Ein inkrementeller Update ist darüber nicht so ohne weiteres möglich. Das bedeutet, das immer die komplette DB gedumpt und eingespielt werden muss.

    Replikation kann man so einrichten, dass sie nicht permanent läuft, sondern sich bspw. um eine bestimmte Uhrzeit alle Slaves zum Master connecten, die Deltas synchronisieren und anschließend wieder disconnecten. Wenn du das Manual tatsächlich gelesen hättest und nicht nur überflogen, wärst du evtl. selbst auf die Idee gekommen

    Das SQL dafür lautet nur so nebenbei: START SLAVE bzw. STOP SLAVE. Um den Status auszulesen kann man SHOW SLAVE STATUS verwenden.

    Es war ja auch nur eine Idee, wie man da einigermaßen professionell ran gehen könnte. Man muss das nicht so machen.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  10. #10
    Avatar von zkmlch
    zkmlch zkmlch ist offline Master of Disaster
    Registriert seit
    Sep 2011
    Ort
    Uster / ZH
    Beiträge
    51
    Hat das ganze Backupverfahren einen Einfluss auf mein "Konzept"?

    Den Ich habe noch immer keinen Peil...

    Ich habe jetzt mal der Datenbanktabelle tbl_server eine neue Spalte zugewiesen, die Tabelle sieht nun so aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    +-------------+----------------------+----------------+--------------+
    | server_prio | server_address       | server_comment | server_rolle |
    +-------------+----------------------+----------------+--------------+
    |           5 | http://192.168.4.226 |                | slave        |
    |           4 | http://192.168.4.225 |                | slave        |
    |           3 | http://192.168.4.224 |                | slave        |
    |           2 | http://192.168.4.223 |                | slave        |
    |           1 | http://192.168.4.222 |                | master       |
    +-------------+----------------------+----------------+--------------+

    Das Feld "server_rolle" dient als Flag. Alle Checks ob der Server nun Master is oder nicht laufen über diese Kolumne, natürlich in verbindung mit der "server_address"...

    Sollte Ich ein Configfile erstellen in welchem geregelt wird was ein Master und ein Slave zu tun hat oder eben nicht zu tun hat?

    Rollenfunktionen:

    Master-Status

    Muss: Jeden Sonntag um 00:00 Uhr, einen MySQL Dump machen (Cronjob)
    Muss: Jeden Sonntag um 01:00 Uhr, alle Downloadfiles auf die anderen Server mirroren (cronjob)
    Muss: Nach dem erfolgreichen übertragen der Files auf die Partnerserver ein Mail absenden.
    Muss: Admin Zutritt zum Adminpanel gewähren
    Darf nicht: MySQL InsertInto Script ausführen (cronjob)

    Slave-Status

    Muss: Jeden Sonntag um 06:00 Uhr, das InsertInto (backup einlesen) ausführen
    Darf nicht: Admins auf das Adminpanel lassen um änderungen vorzunehmen.

    Login auf das Admin Panel und die Logik

    Loggt sich der Admin auf einen Server (gem. Beispiel auf 192.168.4.222) welcher zu diesem Zeitpunkt die "master"-Rolle geniesst, so darf sich der Admin ohne weiteres auf das Admin Panel einloggen und änderungen vornehmen.

    Loggt sich der Admin auf dem Server (gem. Beispiel auf 192.168.4.225) welcher momentan unter der "slave"-Rolle zu leiden hat, wird der Admin mit einer Error meldung empfangen:" Ich bin leider Slve, du darfst mich nur als master bearbeiten" Möchtest du mich zum "master machen? Ja/Nein
    Bei Ja muss in der Datenbank nun der Flag von slave auf master gewechselt werden und der ehemalige master auf slave.

    War dies hilfreich?
     

  11. #11
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Die Informationen hätten mal eher kommen sollen. Hiernach sehe ich vollkommen ein, das eine Replikation der DB Kanonen-auf-Spatzen ist. DB-Dump+Import genügt vollends. Ich bin davon aus, das jede Menge Laufzeit-Daten verwendet und damit hohe Datenbank-Fluktuation statt findet. Gewaltig getäuscht.

    Zu den Punkten: Lässt sich alles prima mit Bordmitteln erledigen.

    Du solltest aber für alle Server einen separaten Benutzer in der MySQL-DB für den Dump- und Import-Prozess anlegen, der auf den jeweiligen Umgebungen jeweils nur die entsprechenden Rechte hat, wenn du bspw. verbieten willst, das ein INSERT-INTO auf dem Master möglich ist.

    Für den Fail-over-switch solltest du dir Gedanken machen, ob kompletter Hardware-Ausfall auch abgefangen werden soll. In diesem Falle empfehle ich, eine Monitoring-Komponente auf einer anderen dedizierten Maschine zu installieren, die alle Server überwacht und ggf. eine weitere Flag-Spalte umsetzt oder den neuen Master definiert => hier sehe ich erstmal größeren Aufwand auf grund von Eintragungen im Nameserver (IP tauschen, neu starten, DNS-Tabelle replizieren lassen, etc). Letztendlich könntest du eine Ausfallzeit von ca. 15-30 Min haben aufgrund von DNS-Caches, Nameservice-Replikation und so weiter. Durch bereits erwähntes Round-Robin wäre es möglich, das abzufangen, allerdings verstößt das gegen die anderen Bedingungen des Konzepts, das z.B. keine Eintragungen von Daten an den Slaves möglich sein soll.

    Außerdem kann es aufwendig werden, den Fail-Over zu testen. Der Fail-Over besteht prinzipiell aus folgenden Einzelschritten, die vom Monitor erledigt werden müssten:

    1. Neu-Definieren des Masters aufgrund der Tabelle, die (auch/nur) auf der Monitoring-Einheit vorhanden ist
    2. Connect zum Nameserver und austausch der IP-Addresse für Domain xyz.tld
    3. [Schritt abhängig von der Sicherheitsstufe der Benutzer-Einstellung in der MySQL-DB]
    - Neu-Setzen der Privilegien für den Laufzeit-Benutzer der Scripts für Dump auf dem neuen Master (INSERT INTO jetzt verboten)
    4. Anlegen der Cron-Jobs für Sonntag (Dump+Dateien) - Für Dateien empfehle ich rsync - ist mehrfach erprobt und kommt gut mit großen und kleinen Mengen zurecht
    5. Auf der DB des neuen Masters muss der (noch nicht konzipierte) Zugriff für den Administrator gewährt werden, das könnte man so erledigen, das bei jedem Login am Admin-Panel die Monitoring-Komponente gefragt wird, wer der aktuelle Master ist (mysql_connect() zur Monitoring-Komponente, Abfragen etc.); Hat den Vorteil, das dies ab dem Zeitpunkt möglich wäre, an dem die Monitoring-Komponente den Ausfall bemerkt hat und die Rollen neu verteilt wurden. Nachteil ist der Traffic zwischen zwei verschiedenen Maschinen bei Login am AP muss sichergestellt werden.

    Zu deiner Frage mit dem Config-File: Ich glaube nicht, das dies notwendig ist, denn sämtliche Tasks beim Fail-Over erfordern ohnehin Änderungen am System. Ob man jetzt ein Konfig-File anpasst, oder Links neu im Dateisystem verlegt, ist dann erstmal egal. Beim Config-File wäre mir die Gefahr zu hoch, das eine Änderung das System im Ganzen kaputt macht. Die Monitoring-Komponente kann vorgefertige Scripte auf dem neuen Server über HTTP aufrufen, welche die entsprechenden Tasks ausführt, die im Fail-Over definiert sind.

    So, das war erst mal ein bisschen Input. Du kannst mit den Vorschlägen verfahren wie du willst, evtl. hast du dadurch noch bessere Ideen.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  12. #12
    Avatar von zkmlch
    zkmlch zkmlch ist offline Master of Disaster
    Registriert seit
    Sep 2011
    Ort
    Uster / ZH
    Beiträge
    51
    So ich bekomm langsam nen Überblick....

    Benötigte Module


    Login Script

    Ich muss ein Login Script entwickeln, welches auf einem HTML Formular basiert. Beim login muss mit einer einfachen if-Anweisung mit abfrage an den Datenbank-Flag überprüft werden ob der Server auf dem sich der User anmeldet „master“ oder „slave“ ist. Falls er nicht „master“ ist Error ausgeben:“Um mich zu bearbeiten muss Ich „master“ sein. Möchtest du mich zum Master machen?
    Option Nein: Bricht das Login verfahren ab.
    Option Ja: Macht folgendes:
    1. Setzt den Flag des bisherigen „masters“ auf „slave“
    2. Setzt den Flag des CurrentServers auf „master“
    3. Login-Script startet eine Seesion und der User kann aufs Admin-Panel

    Kann mir hier jemand helfen ein Abgestimmtes Login-Script zu Entwickeln?

    Mirror Script (angepasste Version)

    Ich muss das bestehende Mirror Script so anpassen das es zuerst eine if Anfrage an die Datenbank stellt ob der CurrentServer mit „master“ gflagt ist. Ist diese bedingung wahr so soll er den nächsten befehl im script ausführen. Ist er nicht wahr soll er sofort abbrechen.

    Bestehendes Script (mirror.sh)

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    #!/bin/sh
     
    #   Hier soll die IF Anweisung hinkommen
     
            
    #   Backup Anweisung zum Dumpen
     
        mysqldump --user=root --password=asdf1234 --databases db_filemanager > /var/www/downloadseite/dbupdate/db_backup    
     
    #   rsync Anweisung       Quelle          Ziel  
     
        rsync -avz -e ssh /var/www/downloadseite/ patrick@192.168.4.223:/var/www/downloadseite/
     
        rsync -avz -e ssh /var/www/downloadseite/ patrick@192.168.4.223:/var/www/downloadseite/
     
        rsync -avz -e ssh /var/www/downloadseite/ patrick@192.168.4.224:/var/www/downloadseite/
     
        rsync --avz -e ssh /var/www/downloadseite/ patrick@192.168.4.225:/var/www/downloadseite/
     
        rsync -avz -e ssh /var/www/downloadseite/ patrick@192.168.4.226:/var/www/downloadseite/

    Kann mir jemand mit der IF-Anweisung helfen?

    Insert-Into Script (angepasste Version)


    Ich muss das bestehende Insert-Into Script so anpassen das es zuerst eine if Anfrage an die Datenbank stellt ob der CurrentServer mit „slave“ gflagt ist. Ist diese bedingung wahr so soll er den nächsten befehl im script ausführen. Ist er nicht wahr soll er sofort abbrechen.


    Gruss Patrick

    Edit: @saftmeister (wiso denk ich immer an saftsack? ) Herzlichen Dank für deine Ausführliche Doku Leider Möchte Ich das Fail-Over noch im Background lassen, da Ich zuerst das Prove of Concept der obengenannten Module realisieren möchte. Aber Ich behalt es mir sicherlich warm
    Geändert von zkmlch (12.10.11 um 17:03 Uhr)
     

  13. #13
    Avatar von zkmlch
    zkmlch zkmlch ist offline Master of Disaster
    Registriert seit
    Sep 2011
    Ort
    Uster / ZH
    Beiträge
    51
    Guten Morgen

    Ich hab da mal einen Entwurf gemacht; Aber esgeht nicht...

    PHP-Code:
    #!/bin/sh

    # Mirror Script (mirror.sh)
    # Version 0.12 // 13.10.2011

    # Scriptbeschreibung: Dieses Script soll den Ordner "downloadseite" welcher im Verzeichnis /var/www/ abgelegt ist auf allen fünf Webserver abgleichen. Jedoch nur wenn der Server "master" ist...



    #    Hier soll die IF Anweisung hinkommen
        
        
    $mysqlhost="localhost";
        
    $mysqluser="root"
        
    $mysqlpwd="asdf1234"
        
    $mysqldb="db_filemanager";

        
    $db = @mysql_connect($mysqlhost$mysqluser$mysqlpwd) or die ("Konnte keine Verbindung zur Datenbank herstellen");
        
    mysql_select_db($mysqldb$db);

        
    $sql "SELECT server_rolle FROM tbl_server";
        
    $rolle mysql_query($sql);

        
    $current_ip $REMOTE_ADDR;

        
    current_hostname=hostname    


        
    if ($rolle['server_rolle']=="master" && $rolle['server_address']==$current_ip || $rolle['server_hostname']==$current_hostname){
            
    #    Backup Anweisung zum Dumpen

        
    mysqldump --user=root --password=asdf1234 --databases db_filemanager > /var/www/downloadseite/dbupdate/db_backup    

    #    rsync Anweisung          Quelle          Ziel    

        
    rsync -avz -e ssh /var/www/downloadseitepatrick@192.168.4.222:/var/www/downloadseite/

        
    rsync -avz -e ssh /var/www/downloadseitepatrick@192.168.4.223:/var/www/downloadseite/

        
    rsync -avz -e ssh /var/www/downloadseitepatrick@192.168.4.224:/var/www/downloadseite/

        
    rsync --avz -e ssh /var/www/downloadseitepatrick@192.168.4.225:/var/www/downloadseite/

        
    rsync -avz -e ssh /var/www/downloadseitepatrick@192.168.4.226:/var/www/downloadseite/

        } 
    Kann mir da jemand helfen? Danke

    EDIT:

    Das bash kan nicht mit den Variablen anfangen... Ich frage mich nur wie Ich ohne PHP in einer Bash das gleiche ergebnis erzielen kann...

    Gruss Patrick
    Geändert von zkmlch (13.10.11 um 13:37 Uhr)
     

  14. #14
    Avatar von zkmlch
    zkmlch zkmlch ist offline Master of Disaster
    Registriert seit
    Sep 2011
    Ort
    Uster / ZH
    Beiträge
    51
    Hab mein Script mal Weiterentwickelt... Nun brauche Ich euere Hilfe...

    Ich hab das Script sauber erklärt, sollte eigentlich alles verständlich sein. Sonst ungeniert fragen.

    PHP-Code:
    #    Mirror Script (mirror.sh)
    #    Version 0.23 / Fr. 14.10.11


    #    Kurzbeschreib:
    #    Das Script spiegelt alle vorhandenen Downloadfiles auf alle Slave Server.
    #    Der Dump und die Rsync Befehle dürfen nur ausgeführt werden wenn der Server
    #    "master" ist. (Er bekommt automatisch oder manuell einen Flag in der 
    #    db_filemanager in der Tabelle tbl_server unter der Spalte; server_rolle


    #    Datenbankauszug:

    #    +-------------+----------------------+----------------+--------------+-----------------+
    #    | server_prio | server_address       | server_comment | server_rolle | server_hostname |
    #    +-------------+----------------------+----------------+--------------+-----------------+
    #    |           5 | http://192.168.4.226 |                | slave        |                 |
    #    |           4 | http://192.168.4.225 |                | slave        |                 |
    #    |           3 | http://192.168.4.224 |                | slave        |                 |
    #    |           2 | http://192.168.4.223 |                | slave        |                 |
    #    |           1 | http://192.168.4.222 |                | master       |                 |
    #    +-------------+----------------------+----------------+--------------+-----------------+


        

    #     Definition der Varible current_ip (IP Adresse)
        
    simple_ip=`ifconfig eth0 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d" " -f 1`
        echo 
    "$simple_ip";
        
        
    http='http://';
        
    ip=$simple_ip;

    #    Hier sollen die beiden Variablen zusammengeführt werden: Soll Ergebniss zB: http://192.168.4.223
            
    current_ip=$http $ip;

        echo 
    "$current_ip";

    #    DB Connect
        
    mysql --user=root --password=asdf1234
    #    DB auswählen
        
    use db_filemanager
    #    Select Anweisung & Query 
        
    sql=SELECT FROM tbl_server WHERE server_rolle "$current_ip";
        
    query=mysql_query($sql);
        
        
    rolle=mysql_fetch_array($query);
        
        exit

        echo 
    "$sql";
        echo 
    "$current_ip";
        echo 
    "$rolle";

    #    IF Anweisung: mysql dump dar NUR dan ausgeführt werden wen der Server in der Datenbank
    #    als master geflaggt ist. Desshalb frage Ich in der Select Anweisung nach 
    #    "WHERE" server_rolle = "eigene IP Adresse" (bei der migrierung werde ich dann nach dem 
    #    Hostnamen suchen.

       
    if `$rolle == master`{
            
    #    Backup Anweisung zum Dumpen

        
    mysqldump --user=root --password=asdf1234 --databases db_filemanager > /var/www/downloadseite/dbupdate/db_backup    

    #    rsync Anweisung          Quelle          Ziel    

    #     webserver222
    rsync -avz -e ssh /var/www/downloadseitepatrick@192.168.4.222:/var/www/downloadseite/
    #     webserver223
    rsync -avz -e ssh /var/www/downloadseitepatrick@192.168.4.223:/var/www/downloadseite/
    #    webserver224
    rsync -avz -e ssh /var/www/downloadseitepatrick@192.168.4.224:/var/www/downloadseite/
    #    webserver225
    rsync -avz -e ssh /var/www/downloadseitepatrick@192.168.4.225:/var/www/downloadseite/
    #    webserver226
    rsync -avz -e ssh /var/www/downloadseitepatrick@192.168.4.226:/var/www/downloadseite/

        } 
    Fehlerbeschreib:

    Bleibt in der Befehlszeile von MySQL stehen und fürd die SQL Befehle von mir nicht aus.
    Nach eingabe von exit erscheint noch folgender Fehler:

    Code :
    1
    2
    3
    
    ww/downloadseite/mirror.sh: 42: [new_file]: not found
    /var/www/downloadseite/mirror.sh: 43: Syntax error: "(" unexpected
    ach eingabe von exit erscheint noch folgender Fehler:
     

  15. #15
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Du machst in dem Shell******-Script einen Misch-Masch aus verschiedenen Sprachen, das kann ja nix werden. Entscheide dich für eine und bau das Script mit einer Sprache.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

Ähnliche Themen

  1. Guter Downloadmanager
    Von tittli im Forum Internet, DSL & Flatrate
    Antworten: 9
    Letzter Beitrag: 23.08.07, 23:08
  2. C# - Downloadmanager
    Von Alexander12 im Forum .NET Web und Kommunikation
    Antworten: 1
    Letzter Beitrag: 19.10.05, 10:41
  3. aktive Benutzeranmeldungen in MS SQL Server anzeigen lassen?
    Von hans73 im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 06.01.05, 21:46
  4. Downloadmanager mit Firefox
    Von JohannesHaase im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 04.04.04, 22:53
  5. Downloadmanager
    Von Berlin-Pac im Forum PHP
    Antworten: 2
    Letzter Beitrag: 18.05.03, 20:30