Jump to content

Archived

This topic is now archived and is closed to further replies.

doni49

Backup my Web Site? CPanel

Recommended Posts

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?

Thanks.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

[code]
<?php


// 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!


// ********* THE FOLLOWING ITEMS NEED TO BE CONFIGURED *********


// 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;


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


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");
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);


?>
[/code]

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.