Aşağıda oluşturulmuş kodlar ile cpanelden başka ftp ye veya mevcut hesaba cron job ile istediğim tarih veya saate göre yedek aldırabiliyorum,
ancak ftp ye aldığım yedekler sunucuda çok yer kaplıyor bu yüzden alınan yedekleri kodlamada yapılan bir düzenleme ile bulut servise atmak mümkünmü, yandex google veya one drive.
yandex ile ilgili bir kod buldum ancak bunu nasıl entegre edeceğimiz çözemedim, konu hakkında bilgisi olan arkadaşlar yardımcı olur ise sevinirim.
<?php
// Bu komut dosyasi, Cpanel yedeginizi otomatik olarak belli zaman araliklarinda ya farkli bir sunucuya ya da kendi ftp sunucunuza yedek aldirir.
// Guvenlik acisindan public_html ya da www dizinlerinde bu dosyayi bulundurmayiniz.
// Bu komut dosyasi, https://gist.github.com/nikhgupta/1071596 adresinden alinti yapilarak cozum uretilmistir.
// Cpanel Erisimi Icin Gerekli Bilgiler
$cpuser = "cpanel_kullanici_adi"; // Cpanel'e giris yapmak icin kullanilan kullanici adi
$cppass = "cpanel_sifre"; // Cpanel'e giris yapmak icin kullanilan sifre
$domain = "siteadi.com"; // Yedeklemesini yapmak istediginiz domain adi
$skin = "paper_lantern"; // Cpanel icin kullanilan tema adi. Guncel surumlerde "paper_lantern" temasi kullanilmaktadir. Eger eski versiyon cpanel kullaniyorsaniz "x" kullanilabilir. Cpanel tema secimi onemlidir, aksi halde script calismaz.
// FTP Erisimi Icin Gerekli Bilgiler
$ftpuser = "ftp_kullanici_adi"; // Ftp ile giris yapmak icin kullanilan kullanici adi
$ftppass = "ftp_sifre"; // Ftp ile giris yapmak icin kullanilan sifre
$ftphost = "ftp.siteadi.com"; // Site FTP adresi ya da IP adresi
$ftpmode = "homedir"; // Yedegin gonderilecegi yer (kendi hostinginizde yedekleme yapmak icin "homedir", uzak ftp sunucusuna gondermek icin "ftp" kullanilabilir)
$ftpport = "21"; // Port (Varsayilan = 21)
$rdir = "/"; // Yedekleme yapilacak dizin (Varsayilan = / )
// Bildirim Ayarlari
$notifyemail = "you@example.com"; // Sonuclarin gonderilecegi email adresi
// 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&port=$ftpport&rdir=$rdir&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);
?>Yandex Örn Kod:<?php
$fileName = "dosyaadin.rar";
$webdavUrl = "https://webdav.yandex.com.tr/";
$webdavCredentials = array(
'mailkullaniciadi',
'sifreniz'
);
$fileHandler = fopen($fileName, 'r');
$fileSize = filesize($fileName);
$ch = curl_init($webdavUrl . $fileName);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, implode(':', $webdavCredentials));
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_INFILE, $fileHandler);
curl_setopt($ch, CURLOPT_INFILESIZE, $fileSize);
curl_exec($ch);
fclose($fileHandler);
?>
