Current File : //backup/homebackup.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);
} 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
				");
	$rows->bindParam(':ac_user_vc', $username);
	$rows->execute();
    $res_count = $rows->rowCount();
	if ($res_count != 0) {		
		$dbvals = $rows->fetch();
		$userid=$dbvals['ac_id_pk'];							
    	if ($backup = ExecuteBackup($userid, $username, $download)) {			
			echo "backup completed.";			
		} else {			
			echo "<h2>Unauthorized Access!</h2>";
			echo "You have no permission to view this module.";			
		}
	}
	else
	{
	    echo "Username does not exists.";
	    exit();		
	}
}
function ExecuteBackup($userid, $username, $download = 0) {
    $vhost_dir=ctrl_options::GetSystemOption('hosted_dir');
    echo "backup Started. \n";
    shell_exec("mkdir -p /backup/$username");
	$timestamp= date("M-d-Y_hms", time());
	$dest_path="/backup/".$username."/"."home_".$username . "_" .$timestamp;
	$currentfilename="home_".$username . "_" .$timestamp.".zip";
    shell_exec("echo $currentfilename > /backup/current_home_$username");
	$src_path=$vhost_dir.$username."/";
	//$src_path="/var/sentora/hostdata/".$username."/";
	/* ///////////////////////////////////////// Calculating all data Start //////////////////////////////////////////////////// */
	//$total_bk_size_in_kb=0;
	$total_bk_size_in_kb = shell_exec("du -sc $src_path | cut -f1 | awk '{print $1; exit}'");
	//$total_bk_size_in_kb += $size;
	$available_size_in_kb = trim(shell_exec("df | awk '{print $4}' | head -2 | tail -1"));
	$overall_size_in_kb = trim(shell_exec("df | awk '{print $2}' | head -2 | tail -1"));
    echo "\ntotal_bk_size_in_kb ".$total_bk_size_in_kb;
    echo "\navailable_size_in_kb ".$available_size_in_kb;
    echo "\noverall_size_in_kb ".$overall_size_in_kb;
	if($available_size_in_kb < $total_bk_size_in_kb )
	{
	    $msg="Due to disk space exceeed, your home backup does not taken. kindly contact your administrator.";
	    echo $msg;
	    return true;
	}
	$remaining_kb = $available_size_in_kb - $total_bk_size_in_kb;
	$remaining_percentage = $remaining_kb / $overall_size_in_kb * 100 ;
    echo "\nremaining_kb ".$remaining_kb;
    echo "\nremaining_percentage ".$remaining_percentage; 
	if($remaining_percentage < 5 )
	{
		$msg="Due to disk space exceeed, your home backup does not taken. kindly contact your administrator.";
		echo $msg;
		return true;
	}

	/* ///////////////////////////////////////// Calculating all data End //////////////////////////////////////////////////// */
	$cmd="cd $vhost_dir && zip -r $dest_path $username 2>&1 ";
	$output=array();
	$return_val="";
	$output=passthru($cmd,$return_val);
    exec("chown apache. -R /backup/$username");
    exec("chmod 755 -R /backup/$username");
	/* //////////////////////////////////////  symlink Creation Started ////////////////////////////////////// */
	$cmd="mkdir -p ".$vhost_dir.$username."/backups/"." &&  cd ".$vhost_dir.$username."/backups/ && ln -S ".$currentfilename." ".$dest_path.".zip";
	shell_exec($cmd);
	/* //////////////////////////////////////  symlink Creation End ////////////////////////////////////// */
	return TRUE;
}

?>