Gözlerini kapat… Bir sabah uyanıyorsun, web siten açılmıyor. E-posta kutunda panik mesajları… “Site çalışmıyor!”
İçin sıkışıyor, çünkü son yedeğin ne zaman alındığını hatırlamıyorsun. İşte tam o anda cPanel otomatik yedekleme sistemi, seni gecenin köründe uyandıran kabusun yerine sıcak bir kahve gibi huzur veriyor.
cPanel’in güçlü bir yedekleme özelliği var ama elle tıklamak, beklemek, indirmek… hele ki birden fazla site yönetiyorsan tam bir zaman tuzağı. O yüzden sana, artık çalışmayan eski yöntemler yerine, yeni cPanel UAPI + API Token ile kendi hostingine ve uzak FTP’ye otomatik yedekleme yolunu göstereceğim.
Bu dersimiz, sitenin hayat sigortası gibi olacak 💡
Neden 2018’deki Script Artık Çalışmıyor?
2018’de bunun için bir çözüm paylaşmıştım: Küçük bir PHP scripti, cron’a ekliyorsun, cPanel’de tam yedek alıp sana e-posta atıyor.
O zamanlar harika çalışıyordu.
Ama sonra… Oyunun kuralları değişti.
Eğer o scripti bugün çalıştırırsan, muhtemelen hiçbir şey olmayacak. Sebepler net:
- Paper Lantern Teması Kalktı
Script,/frontend/paper_lantern/backup/fullbackup.htmlyoluna POST atıyordu.
Artık Paper Lantern yok, Jupiter tema var. Eski yol tamamen silindi. - HTML Form Hack Devri Bitti
cPanel, formlarına CSRF koruması ekledi.
Yani token / oturum olmadan eski usul POST gönderme devri kapandı. - Artık Resmi API Zorunlu
Bu işi yapmak için, cPanel artık UAPI kullanmamızı istiyor.
HTML’yi “taklit etmek” yerine, doğru endpoint’e istek atmak gerekiyor. - Şifre Yerine API Token
Eskiden kullanıcı adı + şifre ile işlem yapılabiliyordu.
Artık API Token hem daha güvenli hem de uzun vadede sorunsuz.
Yani problemler belli: Eski script tarihe karıştı.
Yeni oyuncu UAPI.
Neden FTP’ye otomatik yedek?
- Sunucu bozulsa bile verilerin başka bir yerde güvende olur.
- Gözün arkada kalmaz, çünkü sistem sen uyurken çalışır.
- Tek tıkla değil, hiç tık atmadan yedek alır :))
Adım Adım Yeni Nesil cPanel Otomatik Yedekleme
Artık elimizde eskisinden çok daha güvenli, hızlı ve esnek bir yöntem var:
cPanel UAPI + API Token.
Bu sayede hem kendi hostingine hem de uzak FTP veya bulut depolama alanına otomatik yedekleme yapabilirsin.
Şimdi nasıl yapıldığına bakalım.
API Token Oluşturma
Önce cPanel’de API Token oluşturmalısın:
- cPanel’e giriş yap.
- Security → Manage API Tokens menüsüne git.
- Create Token butonuna tıkla.
- Token’ına anlamlı bir isim ver (ör:
otomatik-yedek). - Token’ı kaydet – çünkü tekrar göremeyeceksin.
Bu token, komutun cPanel’e güvenli şekilde bağlanmasını sağlar. Kullanıcı adı + şifre derdi yok, ayrıca saldırılara karşı çok daha güvenlidir.
Home Dizinine cPanel Otomatik Yedek Alma Yöntemi
Bazen en güvenli yedek, hemen elinin altında olandır.
Bu yöntemle aldığın tam yedek, cPanel hesabının home dizininde saklanır. Yani indirmek için acele etmen gerekmez; dilediğin zaman FTP veya Dosya Yöneticisi üzerinden erişebilirsin.
Avantajları:
- Hızlıdır – Yedek aynı sunucu içinde alındığı için transfer beklemezsin.
- Kolay erişim sağlar – İstediğin zaman indirip başka bir yerde saklayabilirsin.
- Esnektir – Daha sonra bu yedeği uzak FTP’ye, bulut depolamaya ya da başka bir sunucuya taşıyabilirsin.
Aşağıdaki komut, cPanel UAPI kullanarak tam yedeği home dizinine kaydeder. Tek yapman gereken kendi bilgilerini yerlerine koymak:
curl -sS \
-H "Authorization: cpanel CPANEL_KULLANICI_ADI:API_TOKEN" \
"https://ALANADIN:2083/execute/Backup/fullbackup_to_homedir?email=mail@domainadi.com"
Değiştirmen gereken yerler:
CPANEL_KULLANICI_ADI→ cPanel giriş kullanıcı adın (ör.wolinka).API_TOKEN→ cPanel’de “Manage API Tokens” bölümünden oluşturduğun API token.ALANADIN→ cPanel’in bağlı olduğu alan adın veya sunucu adresin (ör.wolinka.com.trveyaserver123.hostingfirmasi.com).mail@domainadi.com→ Yedekleme tamamlandığında bildirim alacağın e-posta adresi.
💡 Not: Yedek home dizininde tutulacağı için zamanla disk kotanı doldurabilir. Düzenli olarak indirip silmeyi unutma.
cPanel Üzerinde cURL Komutunu Çalıştırma
cPanel’e giriş yap
Tarayıcından cPanel hesabına giriş yap.
Cron Jobs menüsüne git
“Advanced” (Gelişmiş) bölümünde Cron Jobs linkine tıkla.
Yeni bir cron job ekle
“Common Settings / Ortak Ayarlar” menüsünden komutun çalışmasını istediğin sıklığı seç (örneğin, “Once Per Week” – haftada 1 kez).
İstersen dakika, saat, gün alanlarını manuel de girebilirsin.
Komut satırına cURL komutunu yaz
Düzenlediğin cURL komut satırını ekle.
curl -sS -H "Authorization: cpanel CPANEL_KULLANICI_ADI:API_TOKEN" "https://ALANADIN:2083/execute/Backup/fullbackup_to_homedir?email=mail@domainadi.com"
Kaydet
Add New Cron Job butonuna tıklayınca, cPanel artık bu komutu belirlediğin zaman aralıklarında otomatik çalıştırır ve backup-YYYY_MM_DD...tar.gz dosyasını home dizinine bırakır.
İpucu:
- Eğer yedeğin her gece saat 02:00’de alınmasını istiyorsan, cron ayarına şunu girebilirsin:
2 * * * - Eğer bu komut çalışmazsa, bazı hosting firmaları cURL kullanımını kısıtlamış olabilir. O durumda
wgetile alternatif komut yazmak gerekebilir.
Uzak Sunucuya cPanel Otomatik Yedekleme (FTP veya SCP)
Home dizinine yedek almak güzel ama ya sunucu çökerse?
O yedek de onunla beraber gider. İşte bu yüzden, yedeği fiziksel olarak farklı bir noktaya göndermek gerçek güvenlik sağlar.
Burada devreye “Uzak Sunucuya Yedekleme” giriyor. Yani verilerini, başka bir hosting hesabına ya da tamamen farklı bir veri merkezine gönderebilirsin.
Bu işlemi cPanel’in UAPI komutlarıyla tek satırda yapmak mümkün.
1. Yöntem: FTP Üzerinden Yedekleme
FTP yıllardır kullanılan, basit ama hala iş gören bir yöntem.
Avantajı, hemen her yerde desteklenmesi. Dezavantajı ise, verilerin şifrelenmeden aktarılmasıdır (o yüzden şifreli SCP seçeneğini de aşağıda göstereceğim).
Adımlar:
- Uzak sunucuda bir FTP hesabı aç
Hedef dizinini belirle (örn./backups/site1). - cPanel API Token’ını hazırla
Daha önce anlattığımız gibi, Security → Manage API Tokens bölümünden oluşturduğun token’ı kullanacağız. - Aşağıdaki cURL komutunu düzenle ve çalıştır
curl -sS \
-H "Authorization: cpanel CPANEL_KULLANICI_ADI:API_TOKEN" \
"https://ALANADIN:2083/execute/Backup/fullbackup_to_ftp?host=FTP_HOST_ADI_YA_DA_IP&username=FTP_KULLANICI&password=FTP_SIFRE&directory=%2Fbackups%2Fsite1&email=mail@domainadi.com&variant=passive&port=21&homedir=include"
Düzenlemen gereken alanlar:
CPANEL_KULLANICI_ADI: cPanel kullanıcı adınAPI_TOKEN: Az önce oluşturduğun tokenALANADIN: Sunucu adı veya alan adın (ör.wolinka.com.tr)FTP_HOST_ADI_YA_DA_IP: Uzak sunucunun adresiFTP_KULLANICI/FTP_SIFRE: Uzak FTP hesabın bilgileridirectory: Yedeğin gideceği klasör (URL-encode ile)variant=passive: Bağlantı sorunlarını azaltmak için pasif modhomedir=include: Home dizinini de dahil et
- Cron ile otomatikleştir
cPanel → Cron Jobs bölümünden yukarıdaki komutu ekle.
Örneğin her gece saat 02:00’de çalışması için:
0 2 * * *
💡 İpucu: Uzak FTP’de haftalık veya aylık temizlik politikası uygula, yoksa depo alanın dolabilir.
2. Yöntem: SCP ile Güvenli (Şifreli) Yedekleme
FTP iyi bir başlangıç ama bir eksiği var: veriler şifrelenmeden transfer ediliyor.
Yani aktarım sırasında ağ dinlenirse, bilgiler yakalanabilir.
İşte bu yüzden SCP (Secure Copy Protocol) çok daha güvenli bir seçenek.
SCP, verileri aktarırken SSH protokolünü kullanır ve tüm iletişimi şifreler. Bu, verilerinin hem transfer sırasında hem de hedef sunucuda güvende kalmasını sağlar.
Avantajları:
- Tam güvenlik: Tüm veri akışı şifrelenir.
- SSH anahtar desteği: Şifre girmeden, güvenli kimlik doğrulama.
- Yüksek uyumluluk: Çoğu Linux tabanlı sunucu SCP’yi destekler.
- Otomasyon dostu: Cron ile düzenli çalıştırma imkânı.
Adım 1 – Hedef Sunucuda Hazırlık
- Yedeklerin gideceği sunucuya SSH erişimi olmalı.
(Bu, başka bir hosting hesabı, VPS veya fiziksel sunucu olabilir.) - Hedef sunucuda
/backups/site1gibi bir klasör oluştur. - Kaynak sunucuda, SSH anahtarı oluşturup hedef sunucuya tanımla.
Böylece her yedekleme sırasında parola girmen gerekmez.
Not: Bazı hosting firmaları SSH erişimi sunmaz. Böyle durumlarda SCP yöntemi çalışmaz, bunun yerine FTP yedekleme kullanmalısın. SSH erişimi varsa, anahtarı cPanel’de Security → SSH Access → Manage SSH Keys menüsünden oluşturabilir, “Authorize” ederek etkinleştirebilirsin. Oluşan public key’i de hedef sunucuya eklemelisin.
Adım 2 – cPanel’de API Token Oluştur
Bu adımı FTP yöntemiyle aynı şekilde yapıyoruz:
- Security → Manage API Tokens menüsüne git.
- Create Token butonuna bas.
- Token’a anlamlı bir isim ver (ör:
scp-yedek). - Token’ı kaydet.
Adım 3 – SCP Komutunu Düzenle
Aşağıdaki cURL komutu, cPanel UAPI kullanarak tam yedeği SCP üzerinden uzak sunucuya gönderecek:
curl -sS \
-H "Authorization: cpanel CPANEL_KULLANICI_ADI:API_TOKEN" \
"https://ALANADIN:2083/execute/Backup/fullbackup_to_scp_with_key?host=SCP_HEDEF&key_name=ANAHTAR_ADI&key_passphrase=ANAHTAR_SIFRESI&directory=%2Fbackups%2Fsite1&email=mail@domainadi.com&port=22&homedir=include"
Düzenlemen gereken alanlar:
CPANEL_KULLANICI_ADI→ cPanel kullanıcı adın (ör: wolinka)API_TOKEN→ cPanel’de oluşturduğun tokenALANADIN→ Alan adın veya cPanel sunucu adresin (ör: wolinka.com.tr)SCP_HEDEF→ Hedef sunucunun IP adresi veya domainiANAHTAR_ADI→ Hedef sunucuya bağlanmak için oluşturduğun SSH anahtarının adıANAHTAR_SIFRESI→ SSH anahtar şifresi (varsa)directory→ Yedeğin hedef klasörü (URL encode ile%2Fbackups%2Fsite1)email→ Yedek tamamlandığında bilgi alacağın e-posta adresi
Adım 4 – Cron ile Otomatikleştir
- cPanel → Cron Jobs bölümüne gir.
- “Common Settings”ten sıklığı seç (ör: her gece 02:00).
- Komut satırına düzenlediğin SCP komutunu yapıştır.
- Kaydet.
Her gece saat 02:00 için cron ayarı:
0 2 * * *
Artık sistem, her gece sitenin tam yedeğini SCP ile güvenli bir şekilde uzak sunucuya gönderecek.
Ekstra Güvenlik Önerileri
- Hedef sunucuda depolama politikası uygula. Eski yedekleri otomatik silmek için script yazabilirsin.
- SSH anahtarını koru. Yetkisiz erişimi önlemek için sadece gerekli kullanıcıya yetki ver.
- İlk testleri manuel yap. Yedekleme dosyasının tam ve bozulmamış olduğundan emin ol.
Sonuç
Home dizininde tutulan yedek, bir yangın tüpü gibidir: Yakındaki sorunlara karşı anında çözüm. SCP ile uzak sunucuya gönderilen yedek ise yangın sigortasıdır: Ev yansa bile, kaybın olmaz.
Bir kere kurarsın, gerisini sistem halleder.
Sen sabah kahveni yudumlarken, verilerin çoktan güvenli bir şekilde saklanmış olur.
Kurulumla uğraşmak istemiyorsan, Wolinka senin için yapar. Bize ulaş ve sitenin yedekleme sistemini hemen aktif edelim.
Sevgiler 🫶
peki üstad Cpnel de 2FA aktif se çalışmaz anladığım kadarıyla.
bunun için bir yöntem varmı?
2FA seçeneklerinden sabit bir kod üretip bu kodu da script içinde bir alana girerek çalıştırmak mümkün olurmu?
Cpanel otomatik güncelleme konusunda yazımız güncelledik 😊 Bu sistemi kullanarak artık cpanel için otomatik yedekleme yapabilirsiniz.
merhabalar yazınız için gerçekten teşekkür ederim.
Sadece veritabanını yedeğini almak istersek nerelerdeki komutları değiştirmeliyiz
Merhaba Ali bey,
Şu an bu sistem sadece full backup için çalışmaktadır.
Üstadım merhaba maalesef çalışmıyor. Sanırım bu dosyanın oluşturulması ile aradan geçen 10 yılda (orjinal github dan baktım) cpanel birşeyleri değiştirdi. 🙁
En geç pazartesi gününe kadar, test edip tekrar size dönüş sağlacağım 🤗 Sevgiler.
Ömer Bey merhaba,
Ben yeniden test ettim. Kendi sunucum üzerinde çalışmadı ancak bir müşterimin sitesi üzerinde çalıştı. Bu arada 47. satırda bir değişiklik yaptım. Dilerseniz tekrar bir test edin. Yine de olmazsa telefon ile iletişime geçin dilerseniz, beraber çözüm üretmeye çalışalım. Çok sevgiler 🤗
harikasınız. üstadım / bu dizine mi kaydediyor. buraya yazma izni veriyormu hosting firmaları
Merhaba 🤗
Evet / dizinine kaydediyor. Çok uzun süredir bu işlemi yapmadım ama backup oluştuktan sonra hatırladığım kadarıyla 644 dosya iznine sahip oluyordu.
Üstadım merhaba bu işlem database i yedekliyor mu?
Doğrudur, database ile beraber full backup alır 🤗