• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 23 december 2025 om 16:43
  • Developer Gezocht

    tcbhome 21 december 2025 om 15:07
  • Op zoek naar de legends

    Jeffrey.Hoekman 9 december 2025 om 09:41
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04
  • Partner Gezocht om meerdere NFT Collecties op Open Sea te Plaatsen

    NFT Art Designer 1 maart 2025 om 14:08

Marktplaats

  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05
  • 302 Nieuwe Domeinnamen November 2025

    shiga 1 december 2025 om 13:07

Back up

  • Luc
  • 4 mei 2009 om 13:12
  • Closed
  • Luc
    Software Engineer
    Ontvangen Reacties
    44
    Berichten
    1.986
    • 4 mei 2009 om 13:12
    • #1

    Beste leden,

    Ik heb een vraag. Is het mogelijk om via cron jobs ervoor te zorgen dat er elke dag een back up word gemaakt van de database. En zou i deze dan ook kunnen opslaan of sturen via een mail in een soort tekst bestandje? Ik was hier erg benieuwd naar of dit kon en of iemand zo'n soort script heeft. Hier zullen veel mensen wat aan hebben.

    Mvg, Luc

    Website: https://devimo.nl
    Skype: https://join.skype.com/invite/dJyYILTt7Eqh

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 4 mei 2009 om 13:14
    • #2

    Dan kan zeker wel. Wat wil je allemaal opslaan? Echt alles, of alleen de inhoud van de tabellen?

  • CrimeWasted
    CrimeWasted.nl V2.0
    Berichten
    189
    • 4 mei 2009 om 13:15
    • #3

    Dit wil ik graag ook, volledige database 1x per week.

    [url=http://www.crimewasted.nl[/url]

  • Luc
    Software Engineer
    Ontvangen Reacties
    44
    Berichten
    1.986
    • 4 mei 2009 om 13:16
    • #4

    Het liefst alles zodat mocht echt alles weg zijn ik altijd de back up helemaal heb.

    Mvg, Luc

    Website: https://devimo.nl
    Skype: https://join.skype.com/invite/dJyYILTt7Eqh

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 4 mei 2009 om 13:17
    • #5

    Ik zal aanraden de hele database gewoon te kopiëren naar een andere database.

    Wil je nu graag de database in een bestand hebben (een dump), zou ik alle gegevens van de tabellen in csv bestanden zetten...

  • Luc
    Software Engineer
    Ontvangen Reacties
    44
    Berichten
    1.986
    • 4 mei 2009 om 13:19
    • #6

    Ja en dit zou ik graag uitvoeren via de cron jobs zodat het volledigig automatisch gaat. Maar ik heb vrij weinig verstand van hoe ik hiervoor een script kan schrijven. En het liefst zou ik ze dan gewoon naar mijn e-mail adres sturen via een bestandje. Zodat ik het altijd gewoon op hotmail heb en erbij kan.

    Mvg, Luc

    Edit:

    Ik heb waarschijnlijk net zo'n script gevonden:

    PHP
    <?php
      /* HMS_BACKUP.PHP
         Holomarcus MySQL Database Backup   
        
         Version 1.0 - August 15th, 2003
         Changelog: see bottom of script.
         
         (c)2003 Holomarcus (http://www.holomarcus.nl)
         You can distribute this script and use it freely as
         long as this header is not edited in the script.
         
         With HMS_BACKUP you can make a backup of your MySQL-database.
         This backup can be sent by e-mail or uploaded through FTP.
         
         This script doesn't need privileges to execute *nix commands.
         It's 100% pure PHP.
         
         The script needs write-privileges on the directory it resides in!
         
         Change the necessary settings below...
      */
    
    
      $dbhost        = 'localhost';  // Server address of your MySQL Server
      $dbuser        = 'your_dbuser';      // Username to access MySQL database
      $dbpass        = 'your_dbpass';    // Password to access MySQL database
      $dbname        = 'your_dbname';      // Database Name
    
    
      $use_gzip      = 'yes';        // Set to No if you don't want the files sent in .gz format
    
    
      $remove_file   = 'yes';        // Set this to yes if you want to remove the file after sending. Yes is recommended.
    
    
      $use_email     = 'yes';          // Set to 'yes' if you want the backup to be sent throug email. Fill out next 3 lines.
      $send_to       = 'your_email';   // E-mail to send the mail to
      $send_from     = 'server_email'; // E-mail the mail comes from
      $subject       = "MySQL Database ($dbname) Backup - " . date("j F Y"); // Subject in the email to be sent.
    
    
      $use_ftp       = 'no'; // Do you want this database backup uploaded to an ftp server? Fill out the next 4 lines
      $ftp_server    = '';   // FTP hostname
      $ftp_user_name = '';   // FTP username
      $ftp_user_pass = '';   // FTP password
      $ftp_path      = "/";  // This is the path to upload on your ftp server!
    
    
      $echo_status = 'no';   // Set to 'no' if the script should work silently (no output will be sent to the screen)
    
    
    
    
    # You probably don't need to edit below this line....
    #-------------------------------------------------------------------------------
    
    
      $db = mysql_connect("$dbhost","$dbuser","$dbpass");
    	mysql_select_db("$dbname",$db);
    
    
      $path = make_dir();
      
      if ($echo_status == 'yes') {
        print "Dumpfile will be written to $path<br>";
      }
    
    
      $result = mysql_query("show tables from $dbname");
      while (list($table) = mysql_fetch_row($result)) {
        $newfile .= get_def($table);
        $newfile .= "\n\n";
        $newfile .= get_content($table);
        $newfile .= "\n\n";
        $i++;
        if ($echo_status == 'yes') {
          print "Dumped table $table<br>";
        }
      }
    
    
    	$file_name = $dbname . "-" . date("Ymd-Hi") . ".sql";
    	$file_path = $path . $file_name;
    
    
      if ($use_gzip == "yes") {
        $file_name .= ".gz";
        $file_path .= ".gz";
        $zp = gzopen($file_path, "wb9");
        gzwrite($zp,$newfile);
        gzclose($zp);
    
    
        if ($echo_status == 'yes') {
          print "<br>Gzip-file is created...<br>";
        }
      } else {
        $fp = fopen($file_path, "w");
        fwrite($fp, $newfile);
        fclose($fp);
    
    
        if ($echo_status == 'yes') {
          print "<br>SQL-file is created...<br>";
        }
      }
    
    
      if ($use_email == 'yes') {
        $fileatt_type = filetype($file_path);
      
        $headers = "From: $send_from";
      
        // Read the file to be attached ('rb' = read binary)
        $fp = fopen($file_path,'rb');
        $data = fread($fp,filesize($file_path));
        fclose($fp);
      
        // Generate a boundary string
        $semi_rand = md5(time());
        $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
      
        // Add the headers for a file attachment
        $headers .= "\nMIME-Version: 1.0\n" ."Content-Type: multipart/mixed;\n" ." boundary=\"{$mime_boundary}\"";
      
        // Add a multipart boundary above the plain message
        $message = "This is a multi-part message in MIME format.\n\n" ."--{$mime_boundary}\n" ."Content-Type: text/plain; charset=\"iso-8859-1\"\n" ."Content-Transfer-Encoding: 7bit\n\n" .
        $message . "\n\n";
      
        // Base64 encode the file data
        $data = chunk_split(base64_encode($data));
      
        // Add file attachment to the message
        $message .= "--{$mime_boundary}\n" ."Content-Type: {$fileatt_type};\n" ." name=\"{$file_name}\"\n" ."Content-Disposition: attachment;\n" ." filename=\"{$file_name}\"\n" ."Content-Transfer-Encoding: base64\n\n" .
        $data . "\n\n" ."--{$mime_boundary}--\n";
      
        // Send the message
        $ok = @mail($send_to, $subject, $message, $headers);
        
        if ($echo_status == 'yes') {
          print "<br>Mail is sent...<br>";
        }
      }
      
      if ($use_ftp == 'yes') {
        if ($use_gzip == 'yes') {
          $mode = FTP_BINARY;
        } else {
          $mode = FTP_ASCII;
        }
        $ftp_id       = ftp_connect($ftp_server);
        $login_result = ftp_login($ftp_id, $ftp_user_name, $ftp_user_pass);
        $upload       = ftp_put($ftp_id, $ftp_path . $file_name, $file_path, $mode);
        ftp_close($ftp_id);
    
    
        if ($echo_status == 'yes') {
          print "<br>Backup is uploaded to $ftp_user_name@$ftp_server...<br>";
        }
      }
    
    
      if ($remove_file == "yes") {
        unlink($file_name);
        if ($echo_status == 'yes') {
          print "<br>File is deleted...<br>";
        }
      }
    
    
      if ($echo_status == 'yes') {
        print "<br>I am done!<br>";
      }
    
    
    
    
      function make_dir() {
        $page = split("/", getenv('SCRIPT_NAME'));
        $n = count($page)-1;
        $page = $page[$n];
        $page = split("\.", $page, 2);
        $extension = $page[1];
        $page = $page[0];
        $script 	= "$page.$extension";
        $base_url 	= "http://".$_SERVER['SERVER_NAME'];
        $directory 	= $_SERVER['PHP_SELF'];
        $url_base = "$base_url$directory";
        $url_base = ereg_replace("$script", '', "$_SERVER[PATH_TRANSLATED]");
    
    
        $path = $url_base;
    
    
        return $path;
      }
    
    
      function get_def($table) {
        $def = "";
        $def .= "DROP TABLE IF EXISTS $table;\n";
        $def .= "CREATE TABLE $table (\n";
        $result = mysql_query("SHOW FIELDS FROM $table") or die("Table $table not existing in database");
        while($row = mysql_fetch_array($result)) {
          $def .= "    $row[Field] $row[Type]";
          if ($row["Default"] != "") $def .= " DEFAULT '$row[Default]'";
          if ($row["Null"] != "YES") $def .= " NOT NULL";
          if ($row[Extra] != "") $def .= " $row[Extra]";
          $def .= ",\n";
        }
        $def = ereg_replace(",\n$","", $def);
        $result = mysql_query("SHOW KEYS FROM $table");
        while($row = mysql_fetch_array($result)) {
          $kname=$row[Key_name];
          if(($kname != "PRIMARY") && ($row[Non_unique] == 0)) $kname="UNIQUE|$kname";
          if(!isset($index[$kname])) $index[$kname] = array();
          $index[$kname][] = $row[Column_name];
        }
        while(list($x, $columns) = @each($index)) {
          $def .= ",\n";
          if($x == "PRIMARY") $def .= "   PRIMARY KEY (" . implode($columns, ", ") . ")";
          else if (substr($x,0,6) == "UNIQUE") $def .= "   UNIQUE ".substr($x,7)." (" . implode($columns, ", ") . ")";
          else $def .= "   KEY $x (" . implode($columns, ", ") . ")";
        }
        $def .= "\n);";
        return (stripslashes($def));
      }
    
    
      function get_content($table) {
        $content="";
        $result = mysql_query("SELECT * FROM $table");
        while($row = mysql_fetch_row($result)) {
          $insert = "INSERT INTO $table VALUES (";
          for($j=0; $j<mysql_num_fields($result);$j++) {
            if(!isset($row[$j])) $insert .= "NULL,";
            else if($row[$j] != "") $insert .= "'".addslashes($row[$j])."',";
            else $insert .= "'',";
          }
          $insert = ereg_replace(",$","",$insert);
          $insert .= ");\n";
          $content .= $insert;
        }
        return $content;
      }
    
    
      /* Changelog
      
         Version 1.0 - August 15th, 2003
         ===============================
         Created this beautiful script...
    
    
      */
     ?>
    Toon Meer

    Kan iemand controleren of deze goed is. Dan zal ik hem zo bij scripts zetten zodat iedereen die er gebruik van wil maken hem kan gebruiken.

    Met vriendelijke groet,

    Luc

    Website: https://devimo.nl
    Skype: https://join.skype.com/invite/dJyYILTt7Eqh

  • Durk
    Intermediate
    Berichten
    365
    • 4 mei 2009 om 13:26
    • #7

    Er zijn webhosts die je database automatisch kunnen backuppen via cron jobs, lees hiervoor hun FAQ eens door.
    Google heeft veel resultaten:
    http://www.google.nl/search?hl=nl&q…&meta=&aq=f&oq=

  • Niels
    -1
    Berichten
    1.360
    • 4 mei 2009 om 13:29
    • #8

    Je hebt wel een aantal php apps waarmee het kan volgens mij alleen die werken niet op crons (niet automatisch). Ik had er laatst ook naar gekeken maar kon zonder dingen te doen met exec() eigenlijk weinig vinden alleen van een bepaalde tabel

    Als je het zo wil moet moet je een array maken d.m.v. SHOW TABLES

    -1

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 4 mei 2009 om 13:31
    • #9

    Dat script ziet er wel redelijk uit. Maar denk wel dat het vrij sloom is.

    PHP
    TRUNCATE test2.tst;
    INSERT INTO test.tst SELECT * FROM test2.tst;

    Even LIST TABLES doen, vervolgens dat voor alle tabellen uitvoeren. In het voorbeeld is test2 een exacte kopie van test, deze wordt dus steeds opnieuw gebackupt (om de week bijvoorbeeld).

  • Niels
    -1
    Berichten
    1.360
    • 4 mei 2009 om 13:35
    • #10
    Citaat

    Dat script ziet er wel redelijk uit. Maar denk wel dat het vrij sloom is.

    PHP
    TRUNCATE test2.tst;
    INSERT INTO test.tst SELECT * FROM test2.tst;

    Even LIST TABLES doen, vervolgens dat voor alle tabellen uitvoeren. In het voorbeeld is test2 een exacte kopie van test, deze wordt dus steeds opnieuw gebackupt (om de week bijvoorbeeld).


    En wat als iemand de gehele db dropt, want ze staan wel op dezelfde database he;)

    -1

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 4 mei 2009 om 13:44
    • #11

    Twee verschillende users.;)
    Eéntje die wel toegang heeft tot database B (Backup database), en één niet. Normaal maak je dan connectie met een user die niet bij database B kan, alleen in de cron. Bij een beetje host moet dat kunnen.

    En als je root toegang hebt: Gewoon de database bestanden kopiëren natuurlijk.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 1 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design