Blog sobre Wordpress, Diseño web,

Internet, Creatividad, Tecnología, Software, Negocios, Marketing...

Enviar backups automáticos a otro servidor con Cpanel y PHP

Si a alguien le interesa la posibilidad de hacer backups de su cuenta de alojamiento web forma automática (con Cron jobs) y enviar el backup a otra cuenta de alojamiento web, entonces que siga leyendo…

Copiar el siguiente codigo a un archivo llamado (por ejemplo) fullBackup.php, cambiar los valores de las variables y enviarlo a una carpeta en vuestra cuenta. Podeis ponerlo en public_html, aunque lo ideal sería hacerlo en una carpeta oculta. Depués, es necesario crear una tarea programada (cron job), especificando la dirección del archivo creado (ejemplo: /home/usuario/public_html/fullbackup.php) y el intervalo de ejecución del script.

[php]
// PHP script to allow periodic cPanel backups automatically.
// Based on script posted by max.hedroom in cpanel.net forums
// Additions by Zap at http://www.getrss.net/
// This script contains passwords. KEEP ACCESS TO THIS FILE SECURE!
// ********* THE FOLLOWING ITEMS NEED TO BE CONFIGURED *********
// Info required for cPanel access
$cpuser = “”; // Username used to login to CPanel
$cppass = “”; // 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 for FTP account
$ftppass = “”; // Password for FTP account
$ftphost = “”; // Full hostname or IP address for FTP host
$ftppath = “//”; // Full path on FTP server to save files to
$ftpmode = “ftp”; // FTP mode (“ftp” for active, “passiveftp” for passive)

// 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 = “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&rdir=$ftppath&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);

?>
[/php]

Etiquetas del artículo: | | |

Síguenos en Twitter o subscríbete al blog

Sobre el autor

Joan Mira

Co-fundador y Jefe de Proyectos de Webmarket. Experto programador en C++, DirectX, QT, MdM Zinc, (X)HTML, CSS, XML, PHP, AMFPHP, MySQL, FPDF, ActionScript 2, JavaScript, Magento, Joomla, Drupal y WordPress. Adicto a las Aplicaciones de Google, las redes sociales y el diseño de interfaces

Co-founder and Project Manager at Webmarket. Expert developer in C + +, DirectX, QT, MDM Zinc, (X)HTML, CSS, XML, PHP, AMFPHP, MySQL, FPDF, ActionScript 2, JavaScript, Magento, Joomla, Drupal and WordPress. Addicted to Google Apps, social networks and Interface Design

Comentarios

  1. WEBNESS dice:

    como hago para enviar un archivo que se encuentra en mi servidor via socket post, a otro servidor?

  2. Carlos dice:

    Parse error: syntax error, unexpected T_VARIABLE in ….. line 8 $cpuser = “usuario”;

    No funciona el script

  3. Webmarket dice:

    Hola Carlos,

    Bienvenido al blog! No se si estás copiando el script en un archivo .php, pero eso no debería de dar error. Simplemente dice ¿que la variable no es de tipo texto?

  4. Miguel Cabrera dice:

    Ya lo probe y no funciono

Escribe un comentario