Ik las een tijdje geleden in een post van electric dat hij bezig was met een mysql backup script. Een comment hierop was dat hij alle databases in 1 dump deed wat een super groot .sql bestand opleverde.
Vandaag had ik weer eens een dag waarop ik een foutje maakte om een tabel te deleten die ik niet moest deleten, dus moest ik weer 650 mb aan data downloaden en daaruit 3 DB files halen van pak weg 1 mb. Zonde van traffic en tijd dus.
Toen heb ik maar besloten om een scriptje te schrijven wat alle databases apart dumpt en dan tart. Bij deze deel ik hem met jullie.
BackupSQLindividual.php
BASH BESTANDPHP Code:<?
define(USERNAME, "root");
define(PASSWORD, "****PASSWORD****");
define(PATH, "/opt/backup/sql/".date("d-F-Y")."-backup/");
if(!file_exists(PATH)) mkdir(PATH, 0777);
$link = mysql_connect("localhost", USERNAME, PASSWORD);
$db_list = mysql_list_dbs($link);
while ($row = mysql_fetch_array($db_list)){
exec("mysqldump -u ".USERNAME." -p".PASSWORD." ".$row['Database']." > ".PATH.$row['Database']."-".date("d-F-Y").".sql");
//echo $row['Database']."\n";
}
mysql_close($link);
?>
** let op dat je een dummy mapje aan maakt in /
/usr/local/bin/php /PATH/NAAR/backupSQLindividual.php > /dev/null
tar -zcvpf /opt/backup/sql/sql-backup-`date '+%d-%B-%Y'`.tar.gz --directory /dummy /opt/backup/sql/`date '+%d-%B-%Y'`-backup > /dev/null
in een cronjob laat je gewoon ieder dag/nacht om een uur of 4 (4:20 in mijn geval) het bash bestand draaien.
cron voorbeeld:
20 4 * * * backupServer > /dev/null
Ik hoop dat ik iemand ermee blij kan maken.

Likes:

