Otomatik Cpanel Yedeği Alma (PHP ve CronJob ile)

15 Temmuz 2017 - 215 Okunma
Otomatik Cpanel Yedeği Alma (PHP ve CronJob ile)
İnternet siteniz veya hosting üzerinde bir projeniz varsa Yedek almamak olumsuz bir durumda sizin için kabus olabilir

Yedek almak webtasarımcılar ve proje yöneticileri için çok can sıkıcı bir işlem olabiliyor, bu yüzden bunu otomatik yapan bir sistemin olması çoğu kullanıcının oldukça işine geliyor.

İşte bu yazımda bende bu tür otomatik yedek alan bir sistemden bahsetmek istiyorum.

Bunun için size aşağıdaki kodu öneriyorum. Kodun SSL desteği de mevcut ve gerçekten iş görüyor.

<?php 
// Bu Script Otomatik olarak CPanel Yedeği alır. 
// Bu kod şifreler içerdiği için home içinde bir yere kopyalayın /www/ veya /public_html/ içine kopyalamayın 
// Aşağıdaki Değişkenleri kendinize göre ayarlayın 
$cpuser = "username"; // Cpanel Kullanıcı adı 
$cppass = "password"; // Cpanel Şifre 
$domain = "example.com"; // Cpanel e bağlandığınız site ismi 
$skin = "x"; // cPanel teması (Skin) ismi. Eğer bu doğru olmazsa kod çalışmaz. Default mod x temasıdır. 
// FTP Bilgileri 
$ftpuser = "ftpusername"; // Yedeklenecek FTPnin kullanıcı adı
$ftppass = "ftppassword"; // FTP Şifresi 
$ftphost = "ftp.example.com"; // FTP Host ismi veya IP Adresi
$ftpmode = "ftp"; // "ftp" yazarsanız Active, "passiveftp" yazarsanız passive mod 
// Yedekleme Bilgilendirme Mail Adresi 
$notifyemail = "you@example.com"; 
// Mail adresiniz 
$secure = 0; 
// Eğer SSL varsa 1 olarak ayarlayın 
$debug = 0; // Sonucu CronLog da görmek istiyorsan 1 yap 
// *****************Ayarlar Bitti****************** 
if ($secure) { 
$url = "ssl://".$domain; $port = 2083; 
} else { 
$url = $domain; $port = 2082; 
} 
$socket = fsockopen($url,$port); 
if (!$socket) {
 echo "Bağlantı Sağlanamıyor...\n"; 
exit; 
} 
$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"); 
while (!feof($socket)) { 
$response = fgets($socket,4096); 
if ($debug) echo $response; 
} 
fclose($socket); ?>

Yukarıdaki kodu kendi ftp ve db bilgilerinize göre doldurup backup.php ismiyle saklayın.

Not: Bu dosyayı sakın /public_html içine kopyalamayın bulunması kolay olur ve sizin için güvenlik açığı oluşturmuş olur.

Kullanımı:

// Cronjob da bu isimdeki gibi bir işlem oluşturun
// Buradaki seninhesabin yazan yere sizin root hesabınızın ve PHP dosyasını koyduğunuz yerin yolunu belirtin.
30 2 * * */usr/local/bin/php/home/seninhesabin/backup.php

// Bu örnekteki gibi Cronjob oluşturulursa her gece 2:30 da yedek alınacaktır.
ITC | İlkteknoloji