76 lines
1.6 KiB
PHP
76 lines
1.6 KiB
PHP
<?php
|
|
|
|
function log_($message, $log)
|
|
{
|
|
$message = sprintf('[%s] %s', date('Y-m-d H:i:s'), trim($message)).PHP_EOL;
|
|
echo $message;
|
|
file_put_contents($log, $message, FILE_APPEND);
|
|
}
|
|
|
|
function exec_($cmd)
|
|
{
|
|
return shell_exec($cmd);
|
|
}
|
|
|
|
function __autoload($class_name)
|
|
{
|
|
require sprintf('/usr/share/wetddump/%s.class.php', $class_name);
|
|
}
|
|
|
|
function getMysqldumpUser()
|
|
{
|
|
return 'debian-sys-maint';
|
|
}
|
|
|
|
function getMysqldumpPassword()
|
|
{
|
|
return trim(shell_exec('grep password /etc/mysql/debian.cnf | egrep -v "^#" | head -n 1 | sed "s/password = //"'));
|
|
}
|
|
|
|
function getMysqlDatabases()
|
|
{
|
|
mysql_connect('localhost', getMysqldumpUser(), getMysqldumpPassword()) or die(mysql_error());
|
|
$results = mysql_query('SHOW DATABASES');
|
|
$bases = array();
|
|
|
|
while ($fetch = mysql_fetch_array($results)) {
|
|
$bases[] = $fetch[0];
|
|
}
|
|
|
|
return $bases;
|
|
}
|
|
|
|
function getMysqldumpCmd($db, $options, $output)
|
|
{
|
|
$cmd = sprintf(
|
|
'mysqldump -u%s -p%s %s %s | gzip -9 > %s',
|
|
getMysqldumpUser(), getMysqldumpPassword(), $options, $db,
|
|
$output
|
|
);
|
|
|
|
return $cmd;
|
|
}
|
|
|
|
function getMysqlPrivilegesDumpCmd($output)
|
|
{
|
|
$cmd = sprintf(
|
|
'wetddump-mysql-privileges -u%s -p%s > %s',
|
|
getMysqldumpUser(), getMysqldumpPassword(), $output
|
|
);
|
|
|
|
return $cmd;
|
|
}
|
|
|
|
function getMongodumpCmd($username, $password, $options, $output)
|
|
{
|
|
$cmd = sprintf(
|
|
'mongodump %s %s %s --out %s',
|
|
!empty($username) ? '-u '.escapeshellarg($username) : '',
|
|
!empty($password) ? '-p '.escapeshellarg($password) : null,
|
|
$options,
|
|
$output
|
|
);
|
|
|
|
return $cmd;
|
|
}
|