Likes Likes:  0
Resultaten 1 tot 5 van de 5
Geen
  1. #1
    Perl MySQL Backup script
    geregistreerd gebruiker
    61 Berichten
    Ingeschreven
    21/11/03

    Locatie
    Schoorl

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: 37119652
    Ondernemingsnummer: nvt

    Thread Starter

    Perl MySQL Backup script

    Ik heb een backup script geschreven voor mysql in perl. Voorheen maakte ik altijd een backup van de complete database met alle databases in 1 SQL bestand, het was op die manier alleen erg lastig om een individuele database te restoren.

    Dit script maakt van elke database een individueel .sql bestand en op het laatst gzip't hij alle bestanden. Hij plaatst deze bestanden in een map met de datum (wordt automatisch aangemaakt).

    Het enige wat je nog moet instellen is de variable basepath, dit moet een geldige map zijn. En je moet de DBI->connect string aanpassen, hier moet een geldig mysql username en wachtwoord in (met toegang tot alle databases).

    Met een cronjob kan je deze inroosteren zodat het dagelijks automatisch draait.

    Ik hoop dat jullie er wat aan hebben. Mochten jullie nog opmerkingen en/of verbeteringen hebben laat het dan weten

    Code:
    #!/usr/bin/perl
    
    my $date = `date +%Y%m%d`;
    chomp($date);
    my $basepath = '/var/backups/mysql';
    
    use DBI;
    $db = DBI->connect("dbi:mysql:database=;host=localhost;user=;password=")
            or die "Couldn't connect to database: $DBI::errstr\n";
    
    my $sth = $db->prepare("SHOW DATABASES");
    $sth->execute();
    
    `mkdir $basepath/$date`;
    
    while (@data = $sth->fetchrow_array()) {
            my $dbname = $data[0];
            my $target = "$basepath/$date/$dbname.sql\n";
            print $target;
            `/usr/bin/mysqldump -Q --database $dbname > $target`;
    }
    `gzip -f $basepath/$date/*`;
    $db->disconnect();

  2. #2
    Perl MySQL Backup script
    geregistreerd gebruiker
    32 Berichten
    Ingeschreven
    31/10/03

    Locatie
    Nvt

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Nee
    KvK nummer: Nvt
    Ondernemingsnummer: Nvt

    Persoonlijk vindt ik dit mooier op te lossen met een .sh bestandje met SSH commando's en een cronjob, dan middels Perl/PHP. Want nu doe je het vrij omslachtig; je geeft via Perl SSH commando's door terwijl je net zo goed direct met SSH de commando's kunt uitvoeren en hetzelfde kunt bereiken.

  3. #3
    Perl MySQL Backup script
    geregistreerd gebruiker
    61 Berichten
    Ingeschreven
    21/11/03

    Locatie
    Schoorl

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: 37119652
    Ondernemingsnummer: nvt

    Thread Starter
    Klopt dat was ook mijn eerste plan om gewoon een bash scriptje te schrijven maar ik wist niet hoe ik dan alle database namen in een array kon krijgen zodat ik dan alle databases kan backuppen.

  4. #4
    Perl MySQL Backup script
    moderator
    7.022 Berichten
    Ingeschreven
    29/07/03

    Locatie
    Nijmegen

    Post Thanks / Like
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)
    175 Berichten zijn liked


    Naam: Mike
    Bedrijf: admin.nu
    URL: www.admin.nu
    Registrar SIDN: Ja
    KvK nummer: 09139651

    voor bash:

    Code:
    for i in `/usr/bin/mysql -uadmin -p$password -e 'show databases'|grep -v Database`;
      do /usr/bin/mysqldump -uadmin -p$password $i > $i.sql && tar -cf $i.tar $i.sql && gzip -S .gz $i.tar && rm -rf $i.sql;
    done
    "Zo zijn ook wij één leverancier. Dé leverancier in gedegen Linux kennis, wanneer jij dat nodig hebt."
    Boek je admin vandaag nog via : www.admin.nu
    Gevestigd in Nederland en Moldavië

    Lees hier de webhostingtalk.nl forum regels en voorwaarden!

  5. #5
    Perl MySQL Backup script
    The anonymous BOFH
    665 Berichten
    Ingeschreven
    28/06/04

    Locatie
    nvt

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nvt
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    ofwel schrijf je deftig perl, ofwel schrijf je bash, maar geen bash in perl

    Alle system commando's die je uitgevoerd hebt, kan je veranderen door een of andere routine in perl. Een betere oplossing zou dus zijn om ofwel alles te herschrijven in perl, zonder commando's te executen (alleen waar het niet anders kan) of een bash scriptje schrijven, zoals het al bijna was.

    Als je dan toch gebruik maakt van perl, altijd volgende lijnen eerst zetten:
    use strict;
    use warnings;

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics