Current File : //root/backup/mailrestore.php |
<?php
// Filename.php username Filename
if($argc!==3)
{
echo "could you please pass the parameters correctly.";
exit();
}
if(!file_exists("/backup/".$argv[1]."/".$argv[2]))
{
echo "File name does not exists in the given user backup folder";
exit;
}
if(substr($argv[2], -3)!='zip')
{
echo "Restore has accept only zip files";
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();
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'];
if ($backup = ExecuteRestore($userid, $username, $download,$argv[2])) {
echo "Restore completed.";
} else {
//echo "<h2>Unauthorized Access!</h2>";
echo "You have no permission to view this module.";
}
}
else
{
echo "Username does not exists.";
exit();
}
}
function ExecuteRestore($userid, $username, $download = 0,$filename) {
echo "Restart started. \n";
$dest_path="/var/sentora/vmail/";
$src_path="/backup/".$username."/";
$cmd="cd $src_path && unzip -n $filename -d $dest_path 2>&1 ";
$output=array();
$return_val="";
$output=passthru($cmd,$return_val);
passthru("chown -R vmail:mail $dest_path");
passthru("chmod -R 0755 $dest_path");
return TRUE;
}
?>