Jump to content


Backup my Web Site? CPanel

  • Please log in to reply
2 replies to this topic

#1 doni49

  • Members
  • PipPipPip
  • Advanced Member
  • 515 posts
  • LocationCentral MO

Posted 04 October 2006 - 06:02 PM

Hello all,

I have a web hosting account with CPanel access on a Linux/Apache server.  My server has PHP 5.x (not sure of the exact version at the moment--but if's imporatant, I'll go get it for you).

I'd like to write a PHP script that will backup everything on my server as a windows zip file and transfer it via FTP to an off site location.  I want to backup my databases, email forwarders (I don't have any pop accounts set up), email auto-responders, etc--ALL settings/data/files.

Can someone point me in the right direction?  Either to an existing script that will help me get started or at least help me figure out how to make sure I get the right files.  I've read articles on writing zip files and I've seen articles on FTP transfer.  But I'm unsure what files I should back up--if I need to restore settings, can I just overwrite the old files?


#2 R_P

  • Members
  • PipPipPip
  • Advanced Member
  • 98 posts

Posted 05 October 2006 - 03:14 AM

If you have an idea on the Zip file creation and FTP functions, then the rest shouldn't be to hard. All you would have to find now is a good directory recursing script (a script that will go file by file, folder by folder) - which also shouldn't be too hard. On the other hand, I'm not so sure about email forwarders and autoresponders (are those saved as files even?)

Don't most versions of Cpanel have backup utilities that do exactly what your looking for? If not, could you write a script that would instead compliment (finishing the job - ie FTP'ing) the existing utility. Just a thought.
Pro in: Win2K3S | Apache2 | PHP5 | Perl5 | MySQL | MSSQL | Firefox | Photoshop
Student of: Ubuntu6 | Java | C | VB.NET | ASP.NET
Developer: Roddzilla Webstudios, Burrson CG, DVIDSHUB, The Four Nations
Student: Georgia Tech, Georgia Tech College of Computing

#3 doni49

  • Members
  • PipPipPip
  • Advanced Member
  • 515 posts
  • LocationCentral MO

Posted 06 October 2006 - 01:38 AM

CPanel DOES have a way to backup the entire site--but it's not automated.  I was looking for some way to automate it because although my host DOES do backups, they're not as frequent as I'd like.

I found the following script to activate CPanel's backup.  I now have a cron job set up that activates it for me.  So I expect to be able to take care of the FTP without a problem.


// PHP script to allow periodic cPanel backups automatically.
// Based on script posted by max.hedroom in cpanel.net forums
//   This script contains passwords.  KEEP ACCESS TO THIS FILE SECURE!


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

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

// Notification information
$notifyemail = "you@example.com"; // 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.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;




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users