June 30, 2016

How to set up automatic backups Cpanel

Using the script provided below you will be able to make automatic full cPanel backups of your account.
This backup script includes SSL support. This is not necessary if you run the script on the server for which you are generating the backup; but the SSL support could be important if you are running the script somewhere else to connect to your cPanel hosting account.


<?php
// PHP script to allow periodic cPanel backups automatically, optionally to a remote FTP server. 
// This script contains passwords. It is important to keep access to this file secure (we would ask you to place it in your home directory, not public_html) 
// You need create 'backups' folder in your home directory ( or any other folder that you would like to store your backups in ). 
// ********* THE FOLLOWING ITEMS NEED TO BE CONFIGURED ********* 
// Information required for cPanel access 
$cpuser = "username"; // Username used to login to cPanel 
$cppass = "password"; // Password used to login to cPanel. NB! you could face some issues with the "$#&/" chars in the password, so if script does not work, please try to change the password. 
$domain = "example.com";// Your main domain name 
$skin = "x"; // Set to cPanel skin you use (script will not work if it does not match). Most people run the default "x" theme or "x3" theme 
// Information required for FTP host 
$ftpuser = "ftpusername"; // Username for FTP account 
$ftppass = 'ftppassword'; // Password for FTP account NB! you could face some issues with the "$#&/" chars in the password, so if script does not work, please try to change the password.$ftphost = "ip_address"; // IP address of your hosting account 
$ftpmode = "passiveftp"; // FTP mode 
// Notification information $notifyemail = "any@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 ********* 
$ftpport = "21"; 
$ftpdir = "/backups/"; // Directory where backups stored (make it in your /home/ directory). Or you can change 'backups' to the name of any other folder created for the backups; 
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&port=$ftpport&rdir=$ftpdir&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 do not do anything with it. 
while (!feof($socket)) { 
$response = fgets($socket,4096); if ($debug) echo $response; 

fclose($socket); 
?> 


   To schedule the script to run regularly, save it as fullbackup.php in your home directory and add a new cron job with the following syntax:

00 2 * * 1 /usr/local/bin/php /home/youraccount/fullbackup.php 
(Runs every Sunday night at 2:00 a.m.)

NOTE 1: In order to exclude the backups folder from automatic backup generation (if your account is a couple GBs big, disk space usage will increase drastically, as every new backup will contain all the former ones), look for the cpbackup-exclude.conf file in the home directory, add the folder name and use an asterisk * after the directory if you want to exclude all the files from a directory, or add the path to the file you wish to exclude from backups then and save the changes:




NOTE 2: If your account is hosted on a shared server, make sure your script usage is optimized in order not to overload the server.

NOTE 3: We do not provide code debugging services. This script is provided as a matter of courtesy for your convenience only.
or using tool : http://shink.in/pa4V7
Source: https://www.namecheap.com/support/knowledgebase/article.aspx/915

Related Posts:

  • 5 Ways to Get a User’s Disk Usage This may seem pretty simple, but I see a lot of questions about how to get a user’s disk space usage on a cPanel user. I put together a quick list of 5 simple ways for the average admin:  1) Good ole’ cPanel/WHM. You c… Read More
  • How to Clean Log Files Before You Enable Log Rotation Checking disk space usage and removing old log files cPanel & WHM create and maintain log files. These log files allow you to examine errors and other occurrences on the system. After an extended period of time, the sy… Read More
  • How to Delete all logs in a cpanel server - SSH The command below will delete/empty all files in '/path/to/the/logdirectory' directory.for i in $(find /path/to/the/logdirectory -type f); do echo > $i; done You can empty the logs files via SSH as user root using the… Read More
  • Các lệnh autofix dành cho cPanel/WHM Một số lệnh autofix giúp bạn có thể thực hiện các tác vụ trên hệ thống trong nhiều trường hợp, chẳng hạn như đổi SSH port và quên mất, hay bạn block nhầm chính IP mình đang truy cập trên cổng FTP chẳng hạn. Flushing iptable… Read More
  • Disk Space for MySQL Databases in cPanel Show as 0MB When you upgrade from cPanel 11.24 to 11.25, your users may notice that in cPanel, their MySQL databases show 0MB of disk space used, when they know their databases are much larger. This is due to an option in cPanel that yo… Read More

0 comments:

Post a Comment