Mass Deface
Email Grabber
"SET NAMES 'utf8'"));
$zdbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$mysqli=mysqli_connect("localhost",$user, $pass);
} catch (PDOException $e) {
exit();
}
$download=1;
if (isset($argv[1]) && $argv[1] != "") {
$username=trim($argv[1]);
$rows = $zdbh->prepare("
SELECT * FROM x_accounts
LEFT JOIN x_profiles ON (x_accounts.ac_id_pk=x_profiles.ud_user_fk)
LEFT JOIN x_groups ON (x_accounts.ac_group_fk=x_groups.ug_id_pk)
LEFT JOIN x_packages ON (x_accounts.ac_package_fk=x_packages.pk_id_pk)
LEFT JOIN x_quotas ON (x_accounts.ac_package_fk=x_quotas.qt_package_fk)
WHERE x_accounts.ac_user_vc= :ac_user_vc AND x_accounts.ac_deleted_ts is NULL
");
$rows->bindParam(':ac_user_vc', $username);
$rows->execute();
$res_count = $rows->rowCount();
if($res_count > 0 ) {
/*if ($rows->fetchColumn() != 0) {
$rows = $zdbh->prepare("
SELECT * FROM x_accounts
LEFT JOIN x_profiles ON (x_accounts.ac_id_pk=x_profiles.ud_user_fk)
LEFT JOIN x_groups ON (x_accounts.ac_group_fk=x_groups.ug_id_pk)
LEFT JOIN x_packages ON (x_accounts.ac_package_fk=x_packages.pk_id_pk)
LEFT JOIN x_quotas ON (x_accounts.ac_package_fk=x_quotas.qt_package_fk)
WHERE x_accounts.ac_user_vc= :ac_user_vc
");
$rows->bindParam(':ac_user_vc', $username);
$rows->execute();*/
$dbvals = $rows->fetch();
$userid=$dbvals['ac_id_pk'];
$DBList="";
$rows = $zdbh->prepare("
SELECT * FROM x_mysql_databases
WHERE x_mysql_databases.my_acc_fk=:ac_user_vc AND x_mysql_databases.my_deleted_ts IS NULL
");
$rows->bindParam(':ac_user_vc', $userid);
$rows->execute();
$mysql_res_count = $rows->rowCount();
if( $mysql_res_count > 0 )
//if ($rows->fetchColumn() != 0)
{
//$rows = $zdbh->prepare("SELECT * FROM x_mysql_databases WHERE x_mysql_databases.my_acc_fk=:ac_user_vc AND x_mysql_databases.my_deleted_ts IS NULL");
//$rows->bindParam(':ac_user_vc', $userid);
//$rows->execute();
$total_bk_size_in_kb=0;
while($dbvals = $rows->fetch())
{
if (mysqli_select_db($mysqli,$dbvals['my_name_vc']))
{
$DBList.=" ".$dbvals['my_name_vc'];
$currentdb = new db_driver("mysql:host=$host;dbname=" . $dbvals['my_name_vc'] . "", $z_db_user, $z_db_pass);
$currentdb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbsize = $currentdb->query("SHOW TABLE STATUS");
$dbgetsize = 0;
while($row = $dbsize->fetch())
{
$dbgetsize = $dbgetsize + ($row['Data_length'] + $row['Index_length']);
$dbgetsize *= 0.00012207;
}
$total_bk_size_in_kb += $dbgetsize;
$available_size_in_kb=array_sum(array_filter(explode("\n",shell_exec("df | grep -vE '^Filesystem|tmpfs|cdrom'| awk '{print $4}'"))));
$overall_size_in_kb=array_sum(array_filter(explode("\n",shell_exec("df | grep -vE '^Filesystem|tmpfs|cdrom'| awk '{print $2}'"))));
if($available_size_in_kb < $total_bk_size_in_kb )
{
$msg="Due to disk space exceeed, your mysql backup not working. kindly contact your administrator.";
echo $msg;
exit;
}
$remaining_kb=$available_size_in_kb - $total_bk_size_in_kb;
$remaining_percentage = $remaining_kb / $overall_size_in_kb * 100 ;
if($remaining_percentage < 5 )
{
$msg="Due to disk space exceeed, your mysql backup not working. kindly contact your administrator.";
echo $msg;
exit;
}
}
//$DBList.=" ".$dbvals['my_name_vc'];
}
}
else
{
echo "No Database Available for Backup\n";
exit;
}
//echo $DBList;
if(trim($DBList)=="")
{
echo "No Database Available for Backup\n";
exit;
}
if ($backup = ExecuteBackup($userid, $username, $download,$DBList)) {
echo "backup completed.";
} else {
echo "Unauthorized Access!
";
echo "You have no permission to view this module.";
}
}
else
{
echo "Username does not exists.";
exit();
}
}
function ExecuteBackup($userid, $username, $download = 0,$DBList) {
include('/etc/sentora/panel/cnf/database.php');
echo "backup Started. \n";
// mysql_
// exec("mkdir -p /backup/".$username."/mysql");
// shell_exec("mkdir -p /backup/$username");
$vhost_dir=ctrl_options::GetSystemOption('hosted_dir');
$backup_dir=$vhost_dir.$username."/backups";
$backup_dir_creation=shell_exec("mkdir -p $backup_dir");
$timestamp=date("M-d-Y_hms", time());
//$dest_path="/backup/".$username."/"."MySQL_".$username . "_" .$timestamp;
$dest_path=$backup_dir."/"."MySQL_".$username. "_" .$timestamp;
$cur_file_name="MySQL_".$username . "_" .$timestamp.".zip";
//$src_path="/backup/".$username."/";
$src_path= $backup_dir."/";
shell_exec("echo $cur_file_name > /backup/current_mysql_$username");
$cmd="cd $src_path && zip -r $dest_path mysql 2>&1 ";
$dbname=md5(sha1($username."SQL"));
//--single-transaction - Since I am using InnoDB tables, I will want to use this option.
//echo $bkcommand ="mkdir -p /backup/$username/mysql && cd /backup/$username/mysql && ".ctrl_options::GetSystemOption('mysqldump_exe')." -h ". $host . " -u " . $user . " -p'" . $pass . "' --databases $DBList > " . $dbname . ".sql ";
echo $bkcommand ="mkdir -p $backup_dir/mysql && cd $backup_dir/mysql && ".ctrl_options::GetSystemOption('mysqldump_exe')." -h ". $host . " -u " . $user . " -p'" . $pass . "' --databases $DBList > " . $dbname . ".sql ";
$output=passthru($bkcommand,$return_val);
$output=array();
$return_val="";
$output=passthru($cmd,$return_val);
/* ////////////////////////////////////// symlink Creation Started ////////////////////////////////////// */
//$vhost_dir=ctrl_options::GetSystemOption('hosted_dir');
//$cmd="mkdir -p ".$vhost_dir.$username."/backups/"." && cd ".$vhost_dir.$username."/backups/ && ln -S ".$cur_file_name." ".$src_path.$cur_file_name." ";
shell_exec($cmd);
$wheris_chown=trim(shell_exec("whereis chown | awk '{print $2}'"));
shell_exec("$wheris_chown -R $username:$username ".$vhost_dir.$username."/backups");
/* ////////////////////////////////////// symlink Creation End ////////////////////////////////////// */
passthru(" rm -fr $backup_dir"."/mysql");
return TRUE;
}
?>