« Return

Fully automated MySQL backups with PHP and cronjob


.htaccess ( deny access to .sql files )
<Files ~ "\.(sql)$">
 Order deny,allow
 Deny from all
</Files>
PHP
<?php
function db_dump() {
$db_host   = 'localhost';
$db_user   = 'username';
$db_pass   = 'password';
$databases = array(
                  'database_name_1',
                  'database_name_2',
                  'database_name_3'
                  );
              
foreach ($databases as $db_name) {         
         $filename = $db_name . '_' . date('Y-m-d-H-i') . '.sql';
         $cmd = 'mysqldump -u ' . $db_user . ' -h ' . $db_host . ' --password=' . $db_pass . ' ' . $db_name . ' > ' . $filename;
         #shell> mysqldump -u username -h localhost -p password database > dumpfile.sql
         $dump_status = (passthru($cmd) === false) ? 'No' : 'Yes';
	       echo 'command executed? ' . $dump_status . '<br />';
       }
}

db_dump();
?>