Unimus Backup’larını GitHub’a Otomatik GöndermeBackup Exporter Kurulum Rehberi

Bir önceki yazımda Unimus’u Docker ile Ubuntu üzerine nasıl kurduğumuzu anlattım. Bu yazıda ise Unimus’un aldığı backup’ları otomatik olarak GitHub’a nasıl göndereceğimizi adım adım inceleyeceğiz.

Bunun için Unimus’un resmi olarak yayınladığı unimus-backup-exporter script’ini kullanacağız. Script bash ile yazılmış, kurulumu oldukça basit.

Neden GitHub’a Gönderelim?

🔒Felaket kurtarma Sunucu çökmesi durumunda backup’lara erişebilmek

📄Versiyonlama Konfigürasyon değişikliklerini Git üzerinden takip etmek

📂Uzun arşivleme Tarihsel konfigürasyonları güvenle saklamak

👥Ekip erişimi Üyelerin backup’lara kolayca ulaşabilmesi

Gereksinimler

  • ✅ Kurulu ve çalışan Unimus sunucusu
  • 🐈 GitHub hesabı
  • 📦 jq paketi
  • 🌐 github.com’a HTTPS (443) erişimi

Adım 1 — jq Kurulumu

Script’in çalışması için jq paketi gerekli:

sudo apt install -y jq

Adım 2 — GitHub’da Private Repo Oluşturma

  1. github.com’a giriş yapın
  2. Sağ üst köşedeki + butonuna tıklayın → New repository
  3. Repository name: unimus-backup (veya istediğiniz bir isim)
  4. Private seçin
  5. Create repository butonuna basın

🔒 Mutlaka Private seçinBackup dosyaları ağınızın konfigürasyonunu içerir — hassas bilgiler barındırır.

Adım 3 — GitHub Personal Access Token Oluşturma

  1. GitHub → sağ üst profil resmi → Settings
  2. Sol menü en altta Developer settings
  3. Personal access tokens → Tokens (classic)
  4. Generate new token → Generate new token (classic)
  5. Note alanına unimus yazın
  6. repo kutucuğunu işaretleyin (tüm repo yetkileri)
  7. Generate token butonuna basın

⚠ DikkatOluşan token’ı hemen kopyalayın — ghp_ ile başlar ve bir daha göremezsiniz!

Adım 4 — Script’i İndirme

cd /opt
mkdir unimus-exporter && cd unimus-exporter
wget https://raw.githubusercontent.com/netcore-jsa/unimus-backup-exporter/main/unimus-backup-exporter.sh
wget https://raw.githubusercontent.com/netcore-jsa/unimus-backup-exporter/main/unimus-backup-exporter.env
chmod +x unimus-backup-exporter.sh

Adım 5 — Unimus API Token Oluşturma

  1. Unimus arayüzüne giriş yapın (http://SUNUCU_IP:8085)
  2. Sol menüden User Management‘a gidin
  3. Sayfanın altında API Tokens bölümü var
  4. Add butonuna basın ve token’ı kopyalayın

Adım 6 — .env Dosyasını Düzenleme

nano /opt/unimus-exporter/unimus-backup-exporter.env

Aşağıdaki ayarları yapın:

# Unimus sunucu adresi
unimus_server_address="http://localhost:8085"

# Unimus API token (Adım 5'te oluşturduğunuz)
unimus_api_key="UNIMUS_API_TOKENINIZ"

# Backup tipi: latest = sadece en son | all = tümü
backup_type="latest"

# Dışa aktarma tipi
export_type="git"

# GitHub kullanıcı adınız (gerçek adınız değil, username)
git_username="github_kullanici_adiniz"

# GitHub Personal Access Token (Adım 3'te oluşturduğunuz)
git_password="ghp_xxxxxxxxxxxxxxxx"

# Email adresiniz
git_email="email@adresiniz.com"

# Protokol ve bağlantı
git_server_protocol="https"
git_server_address="github.com"
git_port="443"

# Repo adresi (username/repo-adi formatında)
git_repo_name="github_kullanici_adiniz/unimus-backup"

# Branch adı
git_branch="main"

Önemli Notlargit_username alanına GitHub kullanıcı adınızı yazın, gerçek adınızı değil. Script sunucunun kendisinde çalışıyorsa unimus_server_address için http://localhost:8085 kullanın.

Adım 7 — Git Kimlik Bilgilerini Tanımlama

git config --global user.email "email@adresiniz.com"
git config --global user.name "Adiniz Soyadiniz"
git config --global init.defaultBranch main

Adım 8 — Manuel Test

Script’i ilk kez çalıştırın:

sudo /opt/unimus-exporter/unimus-backup-exporter.sh

Başarılı çıktı şöyle görünmeli:

✓ Başarılı ÇıktıGetting device data Getting Device Information Exporting latest backups 10 backups exported Export successful Pushing to git [main (root-commit) a844462] Initial Commit Push successful

GitHub reponuza gidip backup dosyalarının geldiğini doğrulayın.

Adım 9 — Otomatik Zamanlama (Cron)

Her gün 17:00’de otomatik çalışması için root’un crontab’ına ekleyin:

sudo crontab -e

Şu satırı ekleyin:

0 17 * * * cd /opt/unimus-exporter && ./unimus-backup-exporter.sh >> /var/log/unimus-backup.log 2>&1

Timezone NotuSunucunuz UTC’deyse ve Türkiye saati (UTC+3) için 17:00 ayarlamak istiyorsanız, cron’a 14:00 yazmanız gerekir. Bunu önlemek için:

sudo timedatectl set-timezone Europe/Istanbul

Bundan sonra cron’a direkt Türkiye saatini yazabilirsiniz.

Cron’u kaydedin ve kontrol edin:

sudo crontab -l

# Log izleme
tail -f /var/log/unimus-backup.log

Firewall Arkasındaysanız

Sunucunuz bir firewall arkasındaysa aşağıdaki adreslere HTTPS (443) çıkışına izin vermeniz gerekiyor:

github.com           # Backup'ları push etmek için
licensing.unimus.net # Unimus lisans doğrulaması için

Palo Alto Kullananlar İçinFQDN bazlı obje tanımlayıp Security Policy’e ekleyebilirsiniz. Script çalışmadan önce Unimus lisans sunucusuna bağlanıp doğrulama yaptığı için her iki adrese de erişim şart.

Akış Özeti

Switch’ler

Unimus (GUI Scheduler → backup alır, DB’ye kaydeder)

Her gün 17:00 — Cron tetiklenir

unimus-backup-exporter.sh çalışır

GitHub’a push edilir ✓

Sorun Giderme

HataÇözüm
jq: command not foundsudo apt install -y jq çalıştırın
Permission deniedsudo ile çalıştırın: sudo ./unimus-backup-exporter.sh
LICENSING_UNREACHABLElicensing.unimus.net adresine 443 portundan erişim olduğunu kontrol edin
Authentication failedGitHub token’ının repo yetkisi olduğunu ve git_username alanının doğru olduğunu kontrol edin
nothing to commitbackups klasörünü silip tekrar deneyin: rm -rf /opt/unimus-exporter/backups

Kaynaklar

Yorum gönder