|
|
|
|
|
WSL Windows Subsystem for Linux |
Python 3.x |
Google Cloud API erişimi |
1️⃣ WSL Başlatma
# WSL terminalini açın
wsl2️⃣ Sistem Paketleri
# Sistem güncellemesi
sudo apt update
# Gerekli paketleri yükleme
sudo apt install cron inotify-tools3️⃣ Python Sanal Ortamı
# Sanal ortam oluşturma
python3 -m venv aws-cli-venv
# Ortamı aktifleştirme
source aws-cli-venv/bin/activate
# Gerekli Python kütüphaneleri
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib4️⃣ Betik İzinleri
# WSL betiklerini çalıştırılabilir yapma
bash make_wsl_scripts_executable.ps15️⃣ Google Drive API Kurulumu
- Google Cloud Console'a gidin
- Yeni proje oluşturun
- "API ve Servisler" > "Kütüphane" bölümünden "Google Drive API" etkinleştirin
- "Kimlik Bilgileri" > "Kimlik Bilgileri Oluştur" > "OAuth istemci kimliği"
- Uygulama türü: "Masaüstü uygulaması"
- İndirilen JSON dosyasını
client_secret.jsonolarak proje klasörüne kaydedin
⚠️ KRITIK GÜVENLİK UYARISI:client_secret.jsondosyası kişisel API kimlik bilgilerinizi içerir ve GİZLİ tutulmalıdır!
flowchart TD
%% Gerçek Zamanlı İzleme Akışı
A[📁 Dosya Değişikliği<br/>Algılandı] --> B[👁️ İzleme Sistemi<br/>inotify-tools]
B --> C[🚀 Yedekleme İşlemi<br/>Başlatıldı]
%% Zamanlanmış Yedekleme Akışı
G[⏰ Cron Job<br/>01:00 - Günlük] --> H[📅 Zamanlanmış<br/>Yedekleme Tetiklendi]
H --> C
%% Ana Yedekleme Süreci
C --> D[📦 Tar Arşivi<br/>Oluşturuluyor]
D --> E[☁️ Google Drive<br/>Yükleniyor]
E --> F[📝 İşlem Logları<br/>Kaydediliyor]
F --> I[✅ Yedekleme<br/>Tamamlandı]
%% Stil Tanımlamaları
classDef trigger fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#000
classDef process fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#000
classDef storage fill:#e8f5e8,stroke:#388e3c,stroke-width:2px,color:#000
classDef complete fill:#fff3e0,stroke:#f57c00,stroke-width:2px,color:#000
%% Sınıf Atamaları
class A,G trigger
class B,H,C,D process
class E storage
class F,I complete
# Cron görevlerini otomatik ayarla
./wsl_scripts/setup_cron.sh📅 Otomatik görev programı:
- 🌅 01:00 - Günlük yedekleme
- 📤 01:30 - AWS S3 yükleme
- ☁️ 02:00 - Google Drive yükleme
# Dosya değişikliklerini izlemeye başla
./wsl_scripts/start_file_watch.sh
# İzlemeyi durdurmak için çıktıdaki komutu kullanın| 🎯 İşlem | 📟 Komut | 📝 Açıklama |
|---|---|---|
| 💾 Yedekleme | ./wsl_scripts/backup.sh |
Anlık yedekleme oluşturur |
| ☁️ Google Drive Yükleme | ./wsl_scripts/upload_to_gdrive.sh |
Son yedeği Google Drive'a yükler |
| 📋 Yedek Listesi | ./wsl_scripts/restore.sh -l |
Mevcut yedekleri listeler |
| 🔄 Geri Yükleme | ./wsl_scripts/restore.sh -f backup_YYYY-MM-DD-HH-MM.tar.gz |
Belirtilen yedeği geri yükler |
💡 Önemli Not: Google Drive'a ilk yükleme sırasında:
- Tarayıcıda OAuth kimlik doğrulama ekranı açılacak
- İzinleri onaylayın ve uygulamanın Google Drive erişimine izin verin
- Token bilgisi
~/.gdrive_token.jsondosyasında otomatik saklanır- Bu işlem sadece ilk kullanımda gereklidir
backup-system/
├── 📂 data/ # 🎯 Yedeklenecek dosyalar
│ ├── 📄 important_file1.txt
│ ├── 📄 important_file2.pdf
│ └── 📁 subfolder/
├── 📂 backup_system/ # 💾 Yedek arşivleri
│ ├── 📄 backup_2024-01-15-14-30.tar.gz
│ ├── 📄 backup_2024-01-16-14-30.tar.gz
│ └── 📄 latest_backup.tar.gz
├── 📂 logs/ # 📝 Log dosyaları
│ ├── 📄 backup.log
│ ├── 📄 upload.log
│ └── 📄 system.log
├── 📂 wsl_scripts/ # 🛠️ Sistem betikleri
│ ├── 🔧 backup.sh # Yedekleme betiği
│ ├── 🔧 restore.sh # Geri yükleme betiği
│ ├── 🔧 upload_to_gdrive.sh # Google Drive yükleme
│ ├── 🔧 setup_cron.sh # Zamanlanmış görevler
│ ├── 🔧 watch_data.sh # Dosya değişiklik izleme
│ └── 🔧 start_file_watch.sh # İzleme başlatma
├── 🔐 client_secret.json # ⚠️ KİŞİSEL Google API kimlik bilgileri
└── 📄 README.md
|
|
# .gitignore örneği
client_secret.json
*.token.json
logs/*.log
backup_system/*.tar.gz🔧 Betik İzin Hataları
# Tüm betiklere çalıştırma izni ver
chmod +x wsl_scripts/*.sh
# Veya tek tek
chmod +x wsl_scripts/backup.sh
chmod +x wsl_scripts/restore.sh
# ... diğer betikler🐍 Python Modül Hataları
# Sanal ortamı aktifleştir
source aws-cli-venv/bin/activate
# Modülleri yeniden yükle
pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
# Alternatif: requirements.txt varsa
pip install -r requirements.txt☁️ Google Drive API Hataları
# Token dosyasını sil ve yeniden kimlik doğrula
rm -f ~/.gdrive_token.json
# Google Drive yükleme betiğini çalıştır (yeni kimlik doğrulama yapacak)
./wsl_scripts/upload_to_gdrive.shYaygın hatalar:
- 403 Forbidden: API quotası aşıldı, biraz bekleyin
- 401 Unauthorized: Token süresi dolmuş, yeniden kimlik doğrulama gerekli
- 400 Bad Request:
client_secret.jsondosyası hatalı veya eksik
⏰ Cron Görev Sorunları
# Cron servisinin çalışıp çalışmadığını kontrol et
sudo service cron status
# Cron servisini başlat
sudo service cron start
# Mevcut cron görevlerini listele
crontab -l
# Cron loglarını kontrol et
sudo tail -f /var/log/cron.log| 📈 Özellik | 💯 Değer |
|---|---|
| Yedekleme Hızı | ~50MB/sn |
| Sıkıştırma Oranı | %60-80 |
| Ortalama Süre | 2-5 saniye |
| Güvenilirlik | %99.9 |
🐛 Hata Bildirimi: GitHub Issues
💡 Öneride Bulunma: Pull Request
📧 İletişim: Proje sahibi ile iletişime geçin
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!
Made with ❤️ | © 2024 Backup System