Yedeklerin çoğu dosyaları ve veritabanını tutar; sonra geri yüklemelerin çoğu, o yedekte hiç bulunmayan bir şey yüzünden başarısız olur. Bir yedek, çıplak bir sunucuya geri yüklendiğinde hiçbir şeyi akıldan yazmadan çalışan bir site üretiyorsa eksiksizdir.
Apaçık olan ikisi
- Site dosyaları, yüklemeler dâhil — ki bunlar çoğu zaman başka bir diskte durduğu için atlanır.
- Veritabanı; çalışırken kopyalanarak değil, dökümü alınarak.
mysqldump --single-transaction --quick --routines --triggers --events dbname | gzip > db.sql.gz
--single-transaction, siteyi kilitlemeden tutarlı bir anlık görüntü alır. --routines, --triggers ve --events ise sade bir dökümün sessizce dışarıda bıraktığı parçaları da içine katar.
Unutulan dört şey
- Posta. Aynı sunucudadır ve site yedeğine asla girmez. Beş yıllık postayı kaybetmek, siteyi kaybetmekten kötüdür.
- Zamanlanmış görevler. Sitenizdeki dosyalar değildir.
crontab -lçıktısını alıp saklayın. - Sunucu yapılandırması. Nginx bloğu, PHP havuzu, sertifika. Bunları akıldan yeniden kurmak, her geri yüklemenin en yavaş kısmıdır.
- DNS. Bölgenin bir dışa aktarımı. Site kapalıyken otuz kaydı elle yeniden kurmak, kulağa geldiği kadar kötüdür.
crontab -l > cron.txt
cp -a /etc/nginx/sites-available/mysite .
cp -a /etc/php/8.3/fpm/pool.d/mysite.conf .
Bir de kimlik bilgileri
Anahtarı yalnızca ölen sunucuda bulunan şifreli bir yedek, yedek değildir. Anahtarı başka bir yerde tutun ve nerede olduğunu yazın.
Bunu kanıtlayan sınama
Başka hiçbir belgeyi açmadan boş bir sunucuya geri yükleyin. Başka yerden bakmak zorunda kaldığınız her şey, yedekte eksik olan şeydir.
EGPHP'nin otomatik yedekleri dosyaları, veritabanlarını ve postayı kapsar; EGPNL de bunların herhangi birini tek başına geri yükler. Bu sayfa, kendi başınıza yedeklediğiniz her şey için bir denetim listesidir.
