Automatic Daily Backup with cpanel
November 11th, 2005Category: ArticlesThis script is an updated version of the one posted by max.hedroom in cpanel.net forums. It supports scp/ftp uploads and remote directories. You can execute this script from you scp host,home computer or your host server. I’d suggest using it from your own machine since it contains plan text passwords!
All You have to do is save the following code to a .php file and add a cron job to execute the php file every tome you would like to have a full backup of your entire web page(emails, DBs, web files) on your own machine.
Enjoy
< ?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!
// It is updated to support secure ftp connections and remote directories
// ********* 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 = "www.host.com"; // 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/SFTP host
$ftpuser = "sshusername"; // Username for FTP(SCP) account
$ftppass = "sshpassword"; // Password for FTP(SCP) account
$ftphost = "sshhost"; // Full hostname or IP address for FTP(SCP) host
$ftpmode = "scp"; // FTP mode ("ftp" for active, "passiveftp" for passive, "scp" for secure ftp)
$ftpport = "22"; // PORT for FTP(SCP) host
$ftprdir = "/path/to/directory"; //Remote Directory on SCP host
// Notification information
$notifyemail = "mailto@somehost.com"; // Email address to send results
// Secure or non-secure mode
$secure = 1; // 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!\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=$ftprdir&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);
?>
One Response at Automatic Daily Backup with cpanel
Leave a Reply
Georgi’s Blog is proudly powered by
WordPress
Постове (RSS)
and Коментари (RSS).

20 queries. 0.386 seconds.


[...] Преместих си малките how-to та в блог-а за да може да някой ако случайно попадне на тях да ги коментира и евентуално да мога да ги подобрявам. Направих нова категория Articles, в която съм сложил всички без Cisco IOS - тази е много стара и има нужда от основен ремонт. За бързо преведох RTFM за Slackware на английски, защото тук на работа постоянно ме питат за не щат, които ги има в това how-to. Имам един пакет с примерни файлове и кратки описания към тях за конфигуриране на нова система (слак), но тя иска малко да се поредактира, защото в момента е пригодена само за вътрешна употреба (евентуално някой ако иска да преинсталира някой от сървърите съм на писал стъпките за да го постигне поне). Ако ми остане време може този уйкенд да ги приготвя и да направя едно цяло howto. [...]
Pingback by Georgi’s Blog » Статии — 2005-12-12 #