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
- github.com’a giriş yapın
- Sağ üst köşedeki + butonuna tıklayın → New repository
- Repository name:
unimus-backup(veya istediğiniz bir isim) - Private seçin
- 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
- GitHub → sağ üst profil resmi → Settings
- Sol menü en altta Developer settings
- Personal access tokens → Tokens (classic)
- Generate new token → Generate new token (classic)
- Note alanına
unimusyazın - repo kutucuğunu işaretleyin (tüm repo yetkileri)
- 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
- Unimus arayüzüne giriş yapın (
http://SUNUCU_IP:8085) - Sol menüden User Management‘a gidin
- Sayfanın altında API Tokens bölümü var
- 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 found | sudo apt install -y jq çalıştırın |
| Permission denied | sudo ile çalıştırın: sudo ./unimus-backup-exporter.sh |
| LICENSING_UNREACHABLE | licensing.unimus.net adresine 443 portundan erişim olduğunu kontrol edin |
| Authentication failed | GitHub token’ının repo yetkisi olduğunu ve git_username alanının doğru olduğunu kontrol edin |
| nothing to commit | backups klasörünü silip tekrar deneyin: rm -rf /opt/unimus-exporter/backups |



Yorum gönder