Zamanlanmış yedek sizi dünden korur. Siteyi bozan bir güncelleme ise onu şimdi bozar ve son kopya yirmi saatlik olabilir, arada bir günlük sipariş vardır. Önemli olan yedek, değişiklikten hemen önce alınandır.

Tek komut

#!/usr/bin/env bash
# /usr/local/bin/snap
set -euo pipefail
SITE=/var/www/site
OUT=/srv/backup/pre-change/$(date +\%F-\%H\%M)
mkdir -p "$OUT"
tar -czf "$OUT/files.tar.gz" -C "$SITE" .
mysqldump --single-transaction --quick --routines --triggers dbname | gzip > "$OUT/db.sql.gz"
echo "$OUT"
sudo snap && sudo apt-get upgrade

Araçlar izin verdiği yerde otomatikleştirin

  • Bir dağıtım betiği bunu ilk adım olarak, hiçbir şey kopyalanmadan önce çalıştırır.
  • Paket güncellemeleri: apt kancaları ya da apt yerine kullandığınız bir sarmalayıcı.
  • İçerik yönetimi güncellemeleri: çoğunun önce anlık görüntü alan bir eklentisi vardır — onu kullanın, ayrıca kendi kopyanızı da saklayın.

İleri gitmeden ÖNCE nasıl geri döneceğinizi bilin

Geri alma komutunu anlık görüntünün yolunun yanına yazın. Yapıştırabileceğiniz tek satır değilse, geri alma işe yarayacak kadar hızlı gerçekleşmez.

# rollback
tar -xzf /srv/backup/pre-change/2026-09-05-0930/files.tar.gz -C /var/www/site
zcat /srv/backup/pre-change/2026-09-05-0930/db.sql.gz | mysql dbname
Veritabanını geri yüklemek, anlık görüntüden bu yana gelen her siparişi ve her kaydı siler. Yoğun bir sitede önce DOSYALARI geri yükleyin; veritabanına ancak arıza gerçekten verideyse dokunun.

Sonra temizleyin

find /srv/backup/pre-change -maxdepth 1 -type d -mtime +14 -exec rm -rf {} +
Tek seferde tek şey güncelleyin. Aynı anda beş eklenti demek, arızanın hangisinde olduğunun bilinmemesi demektir; geri alma da tek bir arızayı bulmak için beş iyileştirmeyi birden kaybettirir.