Cron Backup (manual) cPanel script no longer works with Jupiter


Aug 8, 2015
cPanel Access Level
Website Owner

I have been using this script for couple of years for extra cPanel backups, however, with new cPanel Jupiter theme, this no longer works.

Would somebody be able to provide information / help on how to resolvee this and havee this script working again with Jupiter?

Time and help is greatly appriciated.


// PHP script to allow periodic cPanel backups automatically.
// Permissions on this file should be 600
// Place outside your public_html
// Crontab: 30 3 * * * /usr/local/bin/php /home/username/cpanel_backup.php

// ********* Configuration *********

// Info required for cPanel access
$cpuser = "usern5"; // Username used to login to CPanel
$cppass = "password"; // Password used to login to CPanel
$domain = ""; // Domain name where CPanel is run
$skin = "x"; // Set to cPanel skin you use (script won't work if it doesn't match)

// Info required for FTP host
$ftpuser = "username"; // Username for FTP account
$ftppass = "password"; // Password for FTP account
$ftphost = ""; // Full hostname or IP address for FTP host
$ftpmode = "passiveftp"; // FTP mode ("ftp" for active, "passiveftp" for passive)

// Notification information
$notifyemail = "your@email"; // 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 = 1;

// *********** Don't Touch!! *********

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.0\r\n");
fputs($socket,"Host: $domain\r\n");
fputs($socket,"Authorization: Basic $pass\r\n");
fputs($socket,"Connection: Close\r\n");

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

Last edited by a moderator:


Jurassic Moderator
Staff member
Oct 19, 2014
cPanel Access Level
Root Administrator
Hey there! While I can't help with a custom script, I'm guessing the main issue is that URL doesn't exist anymore. You'd want to change this:

 fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0\r\n");
to the current page, which is /frontend/jupiter/backup/dofullbackup.html

I'd recommend trying that and seeing if that works.
  • Like
Reactions: NEK4TE