wetddump.deb/usr/bin/wetddump-mysql
2017-01-09 15:22:00 +01:00

77 lines
2.2 KiB
Plaintext
Executable file

#!/usr/bin/php5
<?php
require_once '/usr/share/wetddump/functions.php';
mySfYaml::load('/etc/wetddump/mysql.yml');
$log = mySfYaml::get('settings_log', '/var/log/wetddump/mysql.log');
$dir = mySfYaml::get('settings_dir', '/var/wetddump/mysqldump');
if (!is_dir($dir)) {
$cmd = sprintf('mkdir -p %s', escapeshellarg($dir));
log_($cmd, $log);
exec_($cmd);
}
$cmd = sprintf('chdir %s', $dir);
log_($cmd, $log);
chdir($dir);
if (mySfYaml::get('settings_complete_enabled')) {
$cdir = mySfYaml::get('settings_complete_dir', 'complete/');
$cmd = sprintf('rm -rf %s', escapeshellarg($cdir));
log_($cmd, $log);
exec_($cmd);
$cmd = sprintf('mkdir -p %s', escapeshellarg($cdir));
log_($cmd, $log);
exec_($cmd);
$cmd = sprintf('rsync -avz --delete %s/* %s', mySfYaml::get('settings_mysql'), $cdir);
log_($cmd, $log);
exec_($cmd);
}
if (mySfYaml::get('settings_mysqldump_enabled')) {
$cdir = mySfYaml::get('settings_mysqldump_dir', 'sql/');
$cmd = sprintf('rm -rf %s', escapeshellarg($cdir));
log_($cmd, $log);
exec_($cmd);
$cmd = sprintf('mkdir -p %s', escapeshellarg($cdir));
log_($cmd, $log);
exec_($cmd);
$bases = getMysqlDatabases();
foreach ($bases as $k => $base) {
if (in_array($base, mySfYaml::get('settings_mysqldump_ignore_databases', array('information_schema')))) {
log_(sprintf('Ignore "%s"', $base), $log);
continue;
}
$options = mySfYaml::get('settings_mysqldump_options', array());
if ($it = mySfYaml::get('settings_mysqldump_ignore_tables', array())) {
foreach ($it as $table) {
list($_base, $_table) = explode('.', $table);
if ($base == $_base) {
$options[] = sprintf('--ignore-table=%s', $table);
}
}
}
$cmd = getMysqldumpCmd($base, implode(' ', $options), sprintf('%s/dump.%s.%s.gz', $cdir, $base, date('Y-m-d')));
log_('Dump of '.$base, $log);
exec_($cmd);
}
$cmd = getMysqlPrivilegesDumpCmd(sprintf('%s/privileges.%s.sql', $cdir, date('Y-m-d')));
log_('Dump of privileges', $log);
exec_($cmd);
}