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();
?>