mer30boy

Registered
Feb 16, 2020
3
0
1
iran
cPanel Access Level
Website Owner
hi there
I used this code to backup my host automatically .

PHP:
<?php
// PHP script to allow periodic cPanel backups automatically, optionally to a remote FTP server.
// This script contains passwords. KEEP ACCESS TO THIS FILE SECURE! (place it in your home dir, not /www/)
// ********* THE FOLLOWING ITEMS NEED TO BE CONFIGURED *********

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

// Information required for FTP host
$ftpuser = ""; // Username for FTP account
$ftppass = ""; // Password for FTP account
$ftphost = ""; // IP address of your hosting account
$ftpmode = "ftp"; // FTP mode ("ftp" for active, "passiveftp" for passive)
$ftpport = "21"; // Port (default = 21)
$rdir = "/"; // Remote dir (defaut = / )

// Notification information
$notifyemail = "[email protected]"; // 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;

// *********** NO CONFIGURATION ITEMS BELOW THIS LINE *********

if ($secure) {
$url = "https://".$ip;
$port = 2083;
} else {
$url = $ip;
$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&port=$ftpport&rdir=$rdir&submit=Generate Backup";

// Make POST to cPanel
fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0\r\n");
fputs($socket,"Authorization: Basic $pass\r\n");
fputs($socket,"Connection: Close\r\n");
fputs($socket,"\r\n");

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

fclose($socket);

?>
But this code not working.
I think the problem is the ' cpanel security token '.
What changes should be made to this code?
Thanks
 
Last edited by a moderator:

cPanelLauren

Product Owner II
Staff member
Nov 14, 2017
13,266
1,300
363
Houston
What if any output/errors do you receive? I also noticed the following line:

Bash:
$skin = "x3"; // Set to cPanel skin you use (script will not work if it does not match).
cPanel deprecated and removed x3 some time ago. We only provide paper_lantern and this line may not even be necessary anymore

Also, FTP is not enabled by default any longer if you're running a new v86 server you may want to check this.

The following URL goes over how to install an SSL certificate but should give you some insight on how the script should be written/structured Tutorial - Call UAPI's SSL::install_ssl Function in Custom Code - Developer Documentation - cPanel Documentation