Current File : //backup/fullbackup.php
<?php
if($argc!==2)
{
	echo "could you please pass the parameters correctly.";
	exit();
}
require('/etc/sentora/panel/cnf/db.php');
include('/etc/sentora/panel/dryden/db/driver.class.php');
include('/etc/sentora/panel/dryden/debug/logger.class.php');
include('/etc/sentora/panel/dryden/runtime/dataobject.class.php');
include('/etc/sentora/panel/dryden/runtime/hook.class.php');
include('/etc/sentora/panel/dryden/sys/versions.class.php');
include('/etc/sentora/panel/dryden/ctrl/options.class.php');
include('/etc/sentora/panel/dryden/fs/director.class.php');
include('/etc/sentora/panel/dryden/fs/filehandler.class.php');
include('/etc/sentora/panel/inc/dbc.inc.php');
try 
{
    $zdbh = new db_driver("mysql:host=" . $host . ";dbname=" . $dbname . "", $user, $pass);
	$mysqli=mysqli_connect($host,$user, $pass);
} catch (PDOException $e) {
    exit();
}
$vhost_path = ctrl_options::GetSystemOption('hosted_dir');
$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
				");
	$rows->bindParam(':ac_user_vc', $username);
	$rows->execute();
    $res_count = $rows->rowCount();
	if ($res_count != 0) {		
        $dbvals = $rows->fetch();
        $userid=$dbvals['ac_id_pk'];		
        /* ////////////////////////////  Home Backup Start ///////////////////////// */						
        echo "backup Started. \n";
        $time_stamp=date("M-d-Y_hms", time());
        $dest_path="/backup/".$username."/"."Full_".$username . "_" .$time_stamp ;
        shell_exec("mkdir -p /backup/$username");
        $cur_file_name="Full_".$username . "_" . $time_stamp.".zip";		
        shell_exec("echo $cur_file_name > /backup/current_full_$username");
        $src_path=$vhost_path.$username."/";
        //$cmd="cd $src_path && zip -r $dest_path public_html 2>&1 ";
        $cmd="cd $vhost_path && zip -r $dest_path $username 2>&1 ";
        $output=array();
        $return_val="";
        $output=passthru($cmd,$return_val);    
        /* ////////////////////////////  Home Backup End ///////////////////////// */

        /* ////////////////////////////  Mysql Backup Start ///////////////////////// */
        $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();
        $res_count = $rows->rowCount();
        if ($res_count != 0 ) {
            while($dbvals = $rows->fetch())
            {            
                if (mysqli_select_db($mysqli,$dbvals['my_name_vc'])) {
                    $DBList.=" ".$dbvals['my_name_vc'];
                }
            } 
        }
        else
        {
            echo "No Database Available for Backup\n";
        }
        if($DBList=="")
        {
            echo "No Database Available for Backup\n";
        }
        else
        {
            exec("mkdir -p ".$vhost_path.$username."/backups/mysql");
            // $dest_path="/var/sentora/hostdata/".$username."/backups/"."MySQL_".$username . "_" . date("M-d-Y_hms", time());
            $src_path=$vhost_path.$username."/backups/";
            $cmd="cd $src_path && zip -ur $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.
            $bkcommand =" cd $vhost_path$username/backups/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);
            passthru(" rm -fr ".$vhost_path.$username."/backups/mysql");

        }
        /* ////////////////////////////  Mysql Backup End ///////////////////////// */	
        /* ////////////////////////////  Mail Backup Start  ///////////////////////// */	
        $domainlist="";
        $rows = $zdbh->prepare("
            SELECT * FROM  x_vhosts 
            WHERE x_vhosts.vh_acc_fk=:ac_user_vc
            ");
        $rows->bindParam(':ac_user_vc', $userid);
        $rows->execute();
        $res_count = $rows->rowCount();
        if ($res_count != 0) {
            while($dbvals = $rows->fetch())
            {
                $domainlist.=" ".$dbvals['vh_name_vc'];
            }    
            $mail_zip="Mail";
            $dest_path1="/backup/".$username."/".$mail_zip;
            
            $src_path1="/var/sentora/vmail/";
            $cmd1="cd $src_path1 && zip -r $dest_path1 $domainlist 2>&1 ";
            
            
            $output=array();
            $return_val="";
            $output=passthru($cmd1,$return_val);
            $cmdfinal="cd /backup/$username/ && zip -ur $dest_path $mail_zip.zip 2>&1";
            $output=passthru($cmdfinal,$return_val);
            //exit;
            exec("rm -fr $dest_path1".".zip");
            exec("chown apache. -R /backup/$username");
            exec("chmod 755 -R /backup/$username");
        }
        else
        {
            echo "No domains Available for Mail Backup\n";
            // exit;
        }
        /* ////////////////////////////  Mail Backup End ///////////////////////// */	
    
        /* ////////////////////////  symlink Creation Started ////////////////////////
        $dest_path="/backup/".$username."/"."Full_".$username . "_" .$time_stamp ;
        shell_exec("mkdir -p /backup/$username");
        $cur_file_name="Full_".$username . "_" . $time_stamp.".zip";		
        */
        
        $vhost_dir=ctrl_options::GetSystemOption('hosted_dir');
        $cmd="mkdir -p ".$vhost_dir.$username."/backups/"." &&  cd ".$vhost_dir.$username."/backups/ && ln -S ".$cur_file_name." ".$dest_path.".zip";
        shell_exec($cmd);
        /* ///////////////////////////  symlink Creation End ////////////////////////// */
    }
    else
    {
        echo "Username does not exists.";
        exit();		
    }
}


?>