Laravel Backup
Uygulama dosyalarını ve veritabanlarını yedekleyip uzak sunuculara veya bulut depolamaya aktaran otomasyon paketi.
Kurulum
Composercomposer require spatie/laravel-backup
Dokümantasyon & Kullanım
MarkdownSpatie Laravel Backup
Laravel Backup paketi, uygulamanızın kaynak kodlarını, yüklenen kullanıcı dosyalarını ve veritabanı dökümlerini (MySQL, PostgreSQL, SQLite vb.) sıkıştırılmış bir zip arşivi haline getirip AWS S3, Google Cloud, SFTP veya yerel disklere güvenle aktaran, yedekleme sağlığını izleyen ve e-posta/Slack/Telegram bildirimleri gönderen kapsamlı bir DevOps otomasyon aracıdır.
Neden Tercih Edilmeli?
- Tam Otomasyon: Cron zamanlayıcısı ile günlük, haftalık veya saatlik otomatik yedekleme planları oluşturulabilir.
- Akıllı Temizleme (Cleanup Strategy): Eski yedekleri diskte sonsuza kadar biriktirmez; belirlenen kurala göre (son 7 gün, son 4 hafta, son 6 ay vb.) eski arşivleri güvenle siler.
- Yedekleme Sağlık Kontrolü (Monitor): Yedeklerin düzenli alınıp alınmadığını veya disk boyutunu denetler (
backup:monitor). - Anlık Bildirimler: Yedekleme başarılı olduğunda ya da başarısızlığa uğradığında Slack, Discord, Mail ve SMS ile uyarır.
- Parola Koruması: Üretilen zip arşivlerini şifreleyerek veri güvenliğini artırır.
Kurulum
Composer ile paketi projenize dahil edin:
composer require spatie/laravel-backup
Yapılandırma dosyasını yayınlayın:
php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"
Bu işlem config/backup.php dosyasını oluşturur.
Yapılandırma
config/backup.php dosyasında yedeklenecek dosyaları, veritabanlarını ve hedef diskleri belirleyebilirsiniz:
return [
'backup' => [
'name' => env('APP_NAME', 'laravel-backup'),
'source' => [
'files' => [
'include' => [
base_path(),
],
'exclude' => [
base_path('vendor'),
base_path('node_modules'),
storage_path('framework'),
],
],
'databases' => [
'mysql',
],
],
'destination' => [
'disks' => [
's3',
'local',
],
],
],
'cleanup' => [
'default_strategy' => [
'keep_all_backups_for_days' => 7,
'keep_daily_backups_for_days' => 16,
'keep_weekly_backups_for_weeks' => 8,
'keep_monthly_backups_for_months' => 4,
'keep_yearly_backups_for_years' => 1,
'delete_oldest_backups_when_using_more_megabytes_than' => 5000,
],
],
];
Temel Kullanım
1. Manuel Yedek Alma
# Hem dosyaları hem veritabanını yedekle
php artisan backup:run
# Yalnızca veritabanını yedekle (çok daha hızlı)
php artisan backup:run --only-db
# Yalnızca dosyaları yedekle
php artisan backup:run --only-files
2. Eski Yedekleri Temizleme
php artisan backup:clean
3. Yedek Durumunu ve Sağlığını Kontrol Etme
php artisan backup:monitor
4. Zamanlanmış Görev (Cron / Scheduler) Tanımlama
routes/console.php (veya app/Console/Kernel.php) dosyasına zamanlama ekleyin:
use Illuminate\Support\Facades\Schedule;
// Her gece 01:00'de eski yedekleri temizle ve 01:30'da yeni yedek al
Schedule::command('backup:clean')->daily()->at('01:00');
Schedule::command('backup:run')->daily()->at('01:30');
// Her sabah yedek sağlığını denetle
Schedule::command('backup:monitor')->daily()->at('08:00');
Paket Bilgileri
Diğer Paketler
TALL stack üzerine kurulu, zarif ve son derece genişletilebilir admin paneli ve CRUD yönetim aracı.
API oluşturmadan Vue, React veya Svelte bileşenlerini klasik Laravel controller ve view yapısıyla SPA olarak çalıştırmayı sağlayan adaptör.
PHP ve Laravel için popüler, güçlü, esnek görsel işleme, kırpma, filtreleme ve optimizasyon kütüphanesi.