Skip to content

brkhsdmr/ServerBackupManager

Repository files navigation

ServerBackupManager

CreateMssqlBackups konsol uygulamasının arayüzlü, parametrik ve cross-platform yeni sürümü. MSSQL, MySQL, MongoDB ve klasör (IIS) yedeklerini alır. Tüm bağlantı bilgileri ve yollar yerel bir web arayüzünden girilir; parolalar diske şifrelenerek kaydedilir.

Arayüz dili / UI language / Язык интерфейса: Türkçe · English · Русский (sağ üstteki seçiciden; tarayıcı diline göre otomatik seçilir).

Ekran görüntüleri

MSSQL

Genel & Zamanlama Bildirimler
Genel Bildirim
Güvenlik Klasör / IIS
Güvenlik Klasör

Ayrıca: MySQL · MongoDB

Neler değişti

Eski (CreateMssqlBackups) Yeni (ServerBackupManager)
Bağlantılar/yollar koda gömülü Hepsi web arayüzünden parametrik
Parolalar düz metin, kaynak kodda AES-256-GCM ile makineye bağlı şifreli (config.json)
Sadece Windows Windows / Linux / macOS (.NET 10)
Tek parça konsol Arayüz + penceresiz --run (Task Scheduler/cron)
Sabit bekleme süreleri (kod içinde) Modül başına ayarlanabilir bekleme + saklanacak yedek sayısı

Çalıştırma

En kolay yol: Proje klasöründeki Arayüzü Aç.cmd dosyasına çift tıklayın (Windows). Derlenmiş .exe varsa onu açar, yoksa kaynaktan çalıştırır; arayüz tarayıcıda açılır. Linux/macOS'ta ./open-ui.sh kullanın.

İpucu: Arayüzü Aç.cmd dosyasına sağ tık → "Kısayol oluştur" ile masaüstüne kısayol koyabilirsiniz.

Geliştirme/deneme:

dotnet run                 # Web arayüzünü açar (http://127.0.0.1:5005)
dotnet run -- --run        # Etkin modülleri penceresiz yedekler
dotnet run -- --help       # Tüm seçenekler

Komut satırı seçenekleri:

Komut Açıklama
(argümansız) Yerel web arayüzünü başlatır
--run Etkin modülleri yedekler (zamanlanmış görev için)
--run --force Bekleme süresini (MinIntervalHours) yok sayar
--run --module MSSQL Yalnızca tek modülü çalıştırır
--help Yardım

Modül adları: MSSQL, MySQL, MongoDB, Klasör (IIS).

Yayınlama (tek dosya, kurulumsuz)

Hedef makinede .NET kurulu olmasını gerektirmeyen tek .exe:

# Windows
dotnet publish -c Release -r win-x64

# Linux
dotnet publish -c Release -r linux-x64

# macOS (Apple Silicon)
dotnet publish -c Release -r osx-arm64

Çıktı: bin/Release/net10.0/<rid>/publish/ klasörü.

  • Web arayüzü için: publish klasörünün tamamını (exe + wwwroot) kopyalayın — arayüz statik dosyaları wwwroot'tan sunulur.
  • Yalnızca zamanlanmış --run için: ServerBackupManager.exe tek başına yeterlidir (wwwroot gerekmez).

Kurulum (installer) gerektirmez; klasörü kopyalamak yeterlidir. .NET'in hedef makinede kurulu olması gerekmez.

Zamanlanmış görev

Arayüzdeki ⚙️ Genel sekmesi, makineye uygun hazır komutu gösterir.

Windows (Task Scheduler):

schtasks /Create /TN "ServerBackupManager" /TR "\"C:\path\ServerBackupManager.exe\" --run" /SC DAILY /ST 03:00 /RU SYSTEM /F

Linux/macOS (crontab):

0 3 * * * "/path/ServerBackupManager" --run

Hata yönetimi & bildirim

  • Çakışan çalışma koruması: Aynı anda yalnızca bir yedekleme çalışır (data/.run.lock). Önceki çalışma sürerken tetiklenen --run atlanır.
  • Çıkış kodu: Herhangi bir modül hata verirse --run 1, hepsi başarılıysa 0 döner. Böylece Task Scheduler "Son çalıştırma sonucu"nda başarısızlığı gösterir.
  • Bildirim (🔔 sekmesi): Yedekleme sonucunu e-posta (SMTP) ve/veya webhook (Slack/Teams/Discord/özel) ile gönderir. "Yalnızca hata olunca" veya "her çalışmada" seçilebilir. Arayüzde test düğmesi vardır.
  • Log saklama: data/logs altındaki eski loglar, ayarlanan gün sayısından (varsayılan 30) sonra otomatik silinir.
  • Son yedek durumu: Genel sekmesinde her modülün en son yedek tarihi görünür.

Veri ve güvenlik

  • Tüm ayarlar çalıştırılabilir dosyanın yanındaki data/ klasöründe tutulur:
    • config.json — ayarlar (parolalar enc:v1:... olarak şifreli)
    • secret.key — şifreleme anahtarı (kısıtlı izinlerle, sadece makinede)
    • logs/ — her çalışmanın log dosyası
  • Konum SBM_DATA_DIR ortam değişkeniyle değiştirilebilir.
  • Arayüz yalnızca 127.0.0.1 (yerel) dinler; dışarıya açılmaz.
  • Parolalar arayüze asla geri gönderilmez; kayıtlıysa alan boş ama "dokunma" olarak işaretlidir.
  • mysqldump/mongodump parolaları komut satırına yazılmaz; çalışma anında geçici, izinleri kısıtlı bir kimlik dosyasından okunur ve iş bitince silinir (görev yöneticisi/ps ile sızmaz).

Önemli: secret.key makineye özeldir. Ayarları başka makineye taşırken parolaları yeniden girmeniz gerekir (anahtar taşınmaz). Bu, kasıtlı bir güvenlik tercihidir.

Modül notları

  • MSSQL: Tüm kullanıcı veritabanlarını .bak alır. BACKUP TO DISK SQL Server'ın diskine yazdığından, uygulama SQL Server ile aynı makinede çalışmalıdır. "Çalışma klasörü" SQL'in yazacağı yerel klasör, "Hedef klasör" ise sonradan taşınacağı yerdir (örn. Drive).
  • MySQL / MongoDB: mysqldump / mongodump araçlarını kullanır. Araç klasörünü belirtin veya PATH'te ise boş bırakın.
  • Klasör (IIS): Kaynak klasörü (veya alt klasörlerini ayrı ayrı) zip'ler.

Her modülde bekleme süresi (saat) ve saklanacak yedek sayısı ayarlanabilir; eski yedekler otomatik temizlenir.

Lisans

MIT — özgürce kullanabilir, değiştirebilir ve dağıtabilirsiniz. Yazılım "olduğu gibi" sunulur; herhangi bir garanti vermez. Yedeklerinizi düzenli olarak geri yükleme testinden geçirmek sizin sorumluluğunuzdadır.

About

No description, website, or topics provided.

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages