Cron & PHP ile otomatik cPanel backup (domain & MySQL)



Sorun: Web Host umda Cpanel kullanıyorum ve Cpanelin Backup modülünü düzenli olarak kullanıyordum (web teki klasölerim, emaillerim, mysql yedegim..) , fakat Serverde olusan bir


durum nedeni ile bu yedekleme modülü calismiyor , ilaveten bu tamir olsa bile , 8-10 tane hostu olan biri için herbirine haftanin 3-5 günü girip devasa boyutlarda yedek cekmek iskence , bunun otomatik yapilabilecegi bir Cpanel ayari falan varmidir ,Cron diye birsey duydum ama C paneldeki cron da herhangi bir secenege rastlamadim.

Cözüm:
saşağıdaki backup scriptinin SSL destegi vardir , eger bu dosyayi backup almak istediğiniz serverde calistiracaksaniz SSl gerekli degildir , fakat uzaktan baglanti için SSL cok önemlidir.

<?php

// PHP script to allow periodic cPanel backups automatically, optionally to a remote FTP server.
// This script contains passwords.  KEEP ACCESS TO THIS FILE SECURE! (place it in your home dir, not /www/)

// ********* 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 = "x"; // Set to cPanel skin you use (script won't work if it doesn't match). Most people run the default x theme

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

?>

Dosyayi fullbackup.php adi ile saklayin (/public_html dosyasina atmayin , güvenli olmaz)

Hergece 02:15a.m de calismasi için:
15 2 * * * /usr/local/bin/php /home/youraccount/fullbackup.php

Her Pazar 02:15a.m de calismasi için:
15 2 * * 1 /usr/local/bin/php /home/youraccount/fullbackup.php

Kaynak


2 Yorum Var

Yorum Ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Captcha