How to make automatic backup in cPanel?

Using the script* provided below you will be able to make automatic backup of your hosting account (domains and MySQL databases). This backup script includes SSL support. This is not necessary if you run the script on the server for which you are generating the backup; but the SSL support could be important if you are running the script somewhere else to connect to your cPanel hosting account.


// PHP script to allow periodic cPanel backups automatically, optionally to a remote FTP server.
// This script contains passwords.  It is important to keep access to this file secure (we would suggest you to place it in your home directory, not public_html)


// Information required for cPanel access
$cpuser = "username"; // Username used to login to cPanel
$cppass = "password"; // Password used to login to cPanel
$domain = ""; // Your main domain name 
$skin = "x"; // Set to cPanel skin you use (script will not work if it does not match). 

// Information required for FTP host
$ftpuser = "ftpusername"; // Username for FTP account
$ftppass = "ftppassword"; // Password for FTP account
$ftphost = "ip_address"; // IP address of your hosting account
$ftpmode = "passiveftp"; // FTP mode

// Notification information
$notifyemail = ""; // Email address to send results

// Secure or non-secure mode
$secure = 0; // Set to 1 for SSL (requires SSL support), otherwise will use standard HTTP

// Set to 1 to have web page result appear in your cron log
$debug = 0;


if ($secure) {
$url = "ssl://".$domain;
$port = 2083;
} else {
$url = $domain;
$port = 2082;

$socket = fsockopen($url,$port);
if (!$socket) { echo "Failed to open socket connection... Bailing out!n"; exit; }

// Encode authentication string
$authstr = $cpuser.":".$cppass;
$pass = base64_encode($authstr);

$params = "dest=$ftpmode&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&submit=Generate Backup";

// Make POST to cPanel
fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0rn");
fputs($socket,"Host: $domainrn");
fputs($socket,"Authorization: Basic $passrn");
fputs($socket,"Connection: Closern");

// Grab response even if we do not do anything with it.
while (!feof($socket)) {
$response = fgets($socket,4096);
if ($debug) echo $response;



To schedule the script to run regularly, save it as fullbackup.php in your home directory and enter a new cron job** like the following:

00 2 * * 1 /usr/local/bin/php /home/youraccount/fullbackup.php

(Runs every Sunday night at 2:00 a.m.)

That’s it!

*Please note that modohosting does not provide code debugging services. This script is provided as a matter of courtesy for your convenience only.

If you face any issues with the script, we suggest you to refer to our forum.

**If your account is hosted on shared server, please make sure your script usage is optimized in order not to overload the server. 

The script is taken from *here.

  • 25 Users Found This Useful
Was this answer helpful?

Related Articles

How many email addresses can I create?

You can create 25 spam protected email addresses with our Modo Starter plan, 50 email addresses...

How to upload the content of an add-on domain?

You have to upload the files for an addon domain to its directory. When you create a new...

How to add custom error pages?

Custom error pages can be created from cPanel -> Advanced -> Error pages. Once you...

How can I create different types of web redirect with my cPanel?

1. Begin by scrolling to the Domains category after logging into your control panel 2. Click...

Why a subdomain is connected to the addon domain?

Cpanel works this way. The subdomain is required for the addon to work properly and should not...

Powered by WHMCompleteSolution