Ulaşım
- Adres:Batıkent Mh. 8910 Sk. 6. Etap 1H No: 18 Yeni Toki Eyyübiye / Şanlıurfa (Yeni Alım Satım Karşısı)
- Telefon:0 (545) 528 88 93
- eMail: info@alestaweb.com
DirectAdmin Yandex Disk yedekleme ile verilerinizi güvende tutun! Rclone kullanarak otomatik bulut yedekleme sistemi kurun, Ubuntu 22.04 üzerinde adım adım rehber.
DirectAdmin yedekleme sistemini bulut depolama ile entegre etmek, veri güvenliği açısından kritik öneme sahiptir. Yandex Disk tercih edilmesinin nedenleri:
| Özellik | Yerel Yedek | Yandex Disk |
|---|---|---|
| Disk Arızası | ❌ Risk var | ✅ Güvende |
| Sunucu Hack | ❌ Risk var | ✅ İzole |
| Erişim Hızı | ✅ Çok hızlı | ⚡ Orta |
| Maliyet | Disk alanı | ✅ 10 GB ücretsiz |
| Otomatizasyon | ✅ Kolay | ✅ Rclone ile kolay |
DirectAdmin bulut yedekleme kurulumu öncesi kontrol listesi:
# Varsayılan yedek dizinleri
/home/admin/admin_backups/ # Admin yedekleri
/home/*/backups/ # Kullanıcı yedekleri
/backup/ # Sistem geneli yedekler
# Kontrol komutları
ls -la /home/admin/admin_backups/
du -sh /home/admin/admin_backups/ # Toplam boyut
Rclone, 50+ bulut servisini destekleyen güçlü bir senkronizasyon aracıdır. WebDAV üzerinden Yandex Disk bağlantısı için kullanacağız.
# Paket listesini güncelle
sudo apt update
# Gerekli araçları yükle
sudo apt install -y unzip wget curl
# Rclone son sürümünü indir
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
# Alternatif: wget kullanarak
# wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
# Arşivi aç
unzip rclone-current-linux-amd64.zip
# Klasöre gir (versiyon numarası değişebilir)
cd rclone-*-linux-amd64
# Binary'yi sistem dizinine kopyala
sudo cp rclone /usr/bin/
# Çalıştırma izni ver
sudo chmod 755 /usr/bin/rclone
# Man sayfalarını kur (opsiyonel)
sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1/
sudo mandb
# Kurulumu doğrula
rclone version
# Otomatik kurulum scripti (tavsiye edilmez ama hızlı)
curl https://rclone.org/install.sh | sudo bash
# veya
sudo -v ; curl https://rclone.org/install.sh | sudo bash
Rclone config komutu ile Yandex Disk WebDAV bağlantısı oluşturacağız.
# Yapılandırma aracını başlat
rclone config

# Menü seçimleri:
n/s/q> n # New remote
name> yandex # Remote ismi
# Storage tipini seç
Option Storage.
Type of storage to configure.
Choose a number from below...
8 / Other site/service or software
\ (other)
Storage> 8 # Other seçeneği
# WebDAV URL'si
Option url.
URL of http host to connect to.
Enter a value.
url> https://webdav.yandex.ru
# WebDAV vendor (satıcı)
Option vendor.
Name of the WebDAV site/service/software you are using.
Choose a number from below...
5 / Yandex Disk
\ (yandex)
vendor> 5 # Yandex seç (yoksa other yaz)
# Kullanıcı adı
Option user.
User name.
Enter a value.
user> kullanici@yandex.com.tr # Yandex e-posta adresiniz
# Şifre
Option pass.
Password.
Choose an alternative below.
y) Yes, type in my own password
g) Generate random password
y/g> y # Kendi şifreni gir
Enter the password:
password: **************** # 2FA varsa App Password, yoksa normal şifre
Confirm the password:
password: ****************
# Bearer token (boş bırak)
Option bearer_token.
Bearer token instead of user/pass (e.g. a Macaroon).
Enter a value. Press Enter to leave empty.
bearer_token> # Enter (boş bırak)
# Gelişmiş yapılandırma
Edit advanced config?
y) Yes
n) No (default)
y/n> n # Hayır
# Özeti kontrol et
Configuration complete.
Options:
- type: webdav
- url: https://webdav.yandex.ru
- vendor: yandex
- user: kullanici@yandex.com.tr
- pass: *** ENCRYPTED ***
Keep this "yandex" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y # Onayla
# Çıkış
Current remotes:
Name Type
==== ====
yandex webdav
e/n/d/r/c/s/q> q # Quit (çık)
# Yandex Disk içeriğini listele
rclone ls yandex:
# Boş dönerse bağlantı başarılı (henüz dosya yok)
# Hata verirse şifre veya ayarları kontrol et
# Daha detaylı test
rclone lsd yandex: # Klasörleri listele
rclone about yandex: # Disk kullanımını göster
# Test dosyası yükle
echo "Test" > /tmp/test.txt
rclone copy /tmp/test.txt yandex:
rclone ls yandex: # test.txt görünmeli

# Mevcut remote'u düzenle (şifre değiştir)
rclone config
e # Edit existing remote
yandex # Remote adı
y # Change password
# App Password'u yapıştır
q # Quit
# Test et
rclone ls yandex:
Cron job ile DirectAdmin yedeklerini her gece otomatik olarak Yandex Disk'e aktaracağız.
# DirectAdmin yedek dizinini kontrol et
ls -la /home/admin/admin_backups/
# Manuel kopyalama testi (copy komutu)
rclone copy /home/admin/admin_backups yandex:DirectAdmin-Backups --progress
# copy: Sadece yeni/değişen dosyaları kopyalar, eskiyi silmez
# --progress: İlerlemeyi gösterir
# Alternatif: sync komutu (eskiyi siler, yeniyi yükler)
rclone sync /home/admin/admin_backups yandex:DirectAdmin-Backups --progress
# sync: Hedefi kaynak ile tam eşler (eski yedekleri siler!)
# DİKKAT: sync tehlikeli olabilir, yanlış yönde kullanmayın!
# Yandex Disk'i kontrol et
rclone ls yandex:DirectAdmin-Backups
rclone size yandex:DirectAdmin-Backups # Toplam boyut
sync komutu hedefi değiştirir! Test ortamında deneyin.
# Crontab düzenleyiciyi aç
crontab -e
# İlk açılışta editör sorar, nano seçin (1)
# Crontab'a ekle (her gece saat 03:00)
0 3 * * * /usr/bin/rclone sync /home/admin/admin_backups yandex:DirectAdmin-Backups --log-file /var/log/yandex_backup.log
# Eskiyi korur, yeniyi ekler
0 3 * * * /usr/bin/rclone copy /home/admin/admin_backups yandex:DirectAdmin-Backups --max-age 30d --log-file /var/log/yandex_backup.log
# 7 günden eski yedekleri sil, yenileri yükle
0 3 * * * /usr/bin/rclone sync /home/admin/admin_backups yandex:DirectAdmin-Backups --max-age 7d --delete-during --log-file /var/log/yandex_backup.log
0 3 * * * = Her gece 03:00 • --max-age 30d = 30 günden eski dosyaları atla • --log-file = İşlem kaydını tut • --delete-during = Senkronizasyon sırasında sil# Log dosyasını görüntüle
tail -f /var/log/yandex_backup.log
# Son 50 satır
tail -50 /var/log/yandex_backup.log
# Hataları filtrele
grep ERROR /var/log/yandex_backup.log
# Log rotasyonu ekle (opsiyonel)
cat > /etc/logrotate.d/yandex_backup << 'EOF'
/var/log/yandex_backup.log {
weekly
rotate 4
compress
missingok
notifempty
}
EOF

# DirectAdmin yedekleme sonrası otomatik çalışacak script
mkdir -p /usr/local/directadmin/scripts/custom
cat > /usr/local/directadmin/scripts/custom/all_backup_post.sh << 'EOF'
#!/bin/bash
# DirectAdmin yedekleme sonrası Yandex'e yükle
/usr/bin/rclone sync /home/admin/admin_backups yandex:DirectAdmin-Backups \
--log-file /var/log/yandex_backup.log \
--max-age 30d
EOF
chmod +x /usr/local/directadmin/scripts/custom/all_backup_post.sh
# DirectAdmin Admin Backup/Transfer içinde cron ayarla
# Panel: Admin Level → Admin Backup/Transfer → Schedule Backup
# Frequency: Daily
# Time: 02:00
# Email: admin@domain.com
# FTP Upload: No (yerel kaydet)
# Ardından yukarıdaki cron job ile 03:00'te Yandex'e aktar
Tüm işlemleri otomatikleştiren all-in-one bash script. Kopyala-yapıştır-çalıştır!
#!/bin/bash
#######################################################
# DirectAdmin → Yandex Disk Otomatik Yedekleme Setup
# Uyumlu: Ubuntu 22.04, Debian 11/12, AlmaLinux 8/9
# Versiyon: 1.0
# Tarih: 2025
#######################################################
set -e # Hata durumunda durdur
# Renkli çıktılar
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo -e "${GREEN}=== DirectAdmin Yandex Disk Backup Setup ===${NC}"
echo "Bu script Rclone kurulumu ve Yandex Disk yapılandırmasını otomatikleştirir."
echo ""
# 1. İşletim sistemini tespit et
if [ -f /etc/os-release ]; then
. /etc/os-release
OS=$ID
VER=$VERSION_ID
else
echo -e "${RED}İşletim sistemi tespit edilemedi!${NC}"
exit 1
fi
echo -e "${YELLOW}Tespit edilen sistem: $OS $VER${NC}"
# 2. Paket yöneticisini belirle ve güncelle
if [ "$OS" = "ubuntu" ] || [ "$OS" = "debian" ]; then
PKG_MANAGER="apt"
echo "Paket listesi güncelleniyor..."
apt update -qq
apt install -y unzip wget curl > /dev/null 2>&1
elif [ "$OS" = "almalinux" ] || [ "$OS" = "centos" ] || [ "$OS" = "rocky" ]; then
PKG_MANAGER="yum"
yum install -y unzip wget curl > /dev/null 2>&1
else
echo -e "${RED}Desteklenmeyen işletim sistemi: $OS${NC}"
exit 1
fi
# 3. Rclone kurulum kontrolü
if command -v rclone &> /dev/null; then
CURRENT_VERSION=$(rclone version | head -n1 | awk '{print $2}')
echo -e "${GREEN}Rclone zaten kurulu: $CURRENT_VERSION${NC}"
read -p "Yeniden kurmak ister misiniz? (e/h): " REINSTALL
if [ "$REINSTALL" != "e" ]; then
echo "Mevcut kurulum kullanılacak."
else
rm -f /usr/bin/rclone
fi
fi
# 4. Rclone kurulumu (yoksa)
if ! command -v rclone &> /dev/null; then
echo -e "${YELLOW}Rclone indiriliyor...${NC}"
cd /tmp
curl -sO https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip -q rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
cp rclone /usr/bin/
chmod 755 /usr/bin/rclone
cd /
rm -rf /tmp/rclone*
echo -e "${GREEN}Rclone kurulumu tamamlandı!${NC}"
fi
# 5. Rclone versiyonunu göster
rclone version | head -n1
# 6. Yandex Disk yapılandırması
echo ""
echo -e "${YELLOW}=== Yandex Disk Yapılandırması ===${NC}"
echo "2FA aktifse App Password kullanın!"
echo "Oluşturmak için: https://id.yandex.com/security/app-passwords"
echo ""
# Kullanıcı bilgilerini al
read -p "Yandex e-posta adresiniz: " YANDEX_USER
read -sp "Yandex şifreniz (App Password): " YANDEX_PASS
echo ""
# Şifreyi obscure et (Rclone format)
OBSCURED_PASS=$(rclone obscure "$YANDEX_PASS" 2>/dev/null)
# Remote var mı kontrol et
if rclone listremotes | grep -q "^yandex:$"; then
echo -e "${YELLOW}Yandex remote zaten mevcut!${NC}"
read -p "Üzerine yazmak ister misiniz? (e/h): " OVERWRITE
if [ "$OVERWRITE" = "e" ]; then
rclone config delete yandex 2>/dev/null
else
echo "Mevcut yapılandırma korunuyor."
fi
fi
# Yeni remote oluştur
if ! rclone listremotes | grep -q "^yandex:$"; then
echo -e "${YELLOW}Yandex remote oluşturuluyor...${NC}"
# Config dosyasına direkt yaz (daha hızlı)
mkdir -p ~/.config/rclone
cat >> ~/.config/rclone/rclone.conf << EOF
[yandex]
type = webdav
url = https://webdav.yandex.ru
vendor = yandex
user = $YANDEX_USER
pass = $OBSCURED_PASS
EOF
echo -e "${GREEN}Yandex remote oluşturuldu!${NC}"
fi
# 7. Bağlantıyı test et
echo -e "${YELLOW}Bağlantı test ediliyor...${NC}"
if rclone lsd yandex: > /dev/null 2>&1; then
echo -e "${GREEN}✓ Bağlantı başarılı!${NC}"
else
echo -e "${RED}✗ Bağlantı hatası! Şifrenizi kontrol edin.${NC}"
echo "2FA aktifse App Password kullandığınızdan emin olun."
exit 1
fi
# 8. DirectAdmin yedek dizinini kontrol et
BACKUP_DIR="/home/admin/admin_backups"
if [ ! -d "$BACKUP_DIR" ]; then
echo -e "${YELLOW}DirectAdmin yedek dizini bulunamadı!${NC}"
read -p "Farklı bir dizin belirtmek ister misiniz? (e/h): " CUSTOM_DIR
if [ "$CUSTOM_DIR" = "e" ]; then
read -p "Yedek dizini yolu: " BACKUP_DIR
if [ ! -d "$BACKUP_DIR" ]; then
echo -e "${RED}Belirtilen dizin bulunamadı: $BACKUP_DIR${NC}"
exit 1
fi
else
echo -e "${YELLOW}Varsayılan dizin kullanılacak: $BACKUP_DIR${NC}"
mkdir -p "$BACKUP_DIR"
fi
fi
# 9. Yedekleme stratejisi seçimi
echo ""
echo -e "${YELLOW}=== Yedekleme Stratejisi ===${NC}"
echo "1) sync - Eskiyi sil, yeniyi yükle (disk tasarrufu)"
echo "2) copy - Sadece yenileri ekle (güvenli)"
echo "3) copy --max-age 7d - Son 7 günün yedeklerini yükle"
read -p "Seçiminiz (1-3): " STRATEGY
case $STRATEGY in
1)
RCLONE_CMD="sync"
RCLONE_OPTS=""
;;
2)
RCLONE_CMD="copy"
RCLONE_OPTS=""
;;
3)
RCLONE_CMD="copy"
RCLONE_OPTS="--max-age 7d"
;;
*)
echo "Geçersiz seçim! Varsayılan: sync"
RCLONE_CMD="sync"
RCLONE_OPTS=""
;;
esac
# 10. Cron zamanlaması
echo ""
echo -e "${YELLOW}=== Cron Zamanlaması ===${NC}"
echo "1) Her gece 03:00"
echo "2) Her gece 02:00"
echo "3) Her gece 04:00"
echo "4) Özel saat belirt"
echo "5) Cron kurma (manuel eklerim)"
read -p "Seçiminiz (1-5): " CRON_TIME
case $CRON_TIME in
1)
CRON_SCHEDULE="0 3 * * *"
;;
2)
CRON_SCHEDULE="0 2 * * *"
;;
3)
CRON_SCHEDULE="0 4 * * *"
;;
4)
read -p "Saat (0-23): " CUSTOM_HOUR
CRON_SCHEDULE="0 $CUSTOM_HOUR * * *"
;;
5)
CRON_SCHEDULE=""
;;
*)
CRON_SCHEDULE="0 3 * * *"
;;
esac
# 11. Cron job oluştur
if [ ! -z "$CRON_SCHEDULE" ]; then
echo -e "${YELLOW}Cron job ekleniyor...${NC}"
# Mevcut cron'u al
crontab -l 2>/dev/null > /tmp/current_cron || true
# Yandex backup satırını kontrol et
if grep -q "yandex:DirectAdmin-Backups" /tmp/current_cron; then
echo -e "${YELLOW}Mevcut cron job bulundu, güncelleniyor...${NC}"
sed -i '/yandex:DirectAdmin-Backups/d' /tmp/current_cron
fi
# Yeni cron satırı ekle
echo "$CRON_SCHEDULE /usr/bin/rclone $RCLONE_CMD $BACKUP_DIR yandex:DirectAdmin-Backups $RCLONE_OPTS --log-file /var/log/yandex_backup.log" >> /tmp/current_cron
# Cron'u güncelle
crontab /tmp/current_cron
rm -f /tmp/current_cron
echo -e "${GREEN}Cron job eklendi!${NC}"
echo "Zamanlama: $CRON_SCHEDULE"
fi
# 12. Log rotasyonu kur
echo -e "${YELLOW}Log rotasyonu ayarlanıyor...${NC}"
cat > /etc/logrotate.d/yandex_backup << 'EOF'
/var/log/yandex_backup.log {
weekly
rotate 4
compress
missingok
notifempty
create 644 root root
}
EOF
echo -e "${GREEN}Log rotasyonu kuruldu!${NC}"
# 13. İlk yedekleme testi
echo ""
read -p "Şimdi test yedeklemesi yapmak ister misiniz? (e/h): " DO_TEST
if [ "$DO_TEST" = "e" ]; then
echo -e "${YELLOW}Test yedeklemesi başlatılıyor...${NC}"
echo "Bu işlem yedek boyutuna göre zaman alabilir."
# Test dosyası oluştur
echo "DirectAdmin Yandex Backup Test - $(date)" > "$BACKUP_DIR/test_backup.txt"
# Yedeklemeyi çalıştır
/usr/bin/rclone $RCLONE_CMD "$BACKUP_DIR" yandex:DirectAdmin-Backups $RCLONE_OPTS --progress
# Sonucu kontrol et
if rclone ls yandex:DirectAdmin-Backups | grep -q "test_backup.txt"; then
echo -e "${GREEN}✓ Test başarılı! Dosyalar Yandex Disk'e yüklendi.${NC}"
else
echo -e "${RED}✗ Test başarısız! Log dosyasını kontrol edin.${NC}"
fi
fi
# 14. Özet bilgi
echo ""
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN} KURULUM TAMAMLANDI!${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
echo -e "${YELLOW}Yapılandırma Özeti:${NC}"
echo "• Rclone versiyonu: $(rclone version | head -n1 | awk '{print $2}')"
echo "• Yandex hesabı: $YANDEX_USER"
echo "• Yedek dizini: $BACKUP_DIR"
echo "• Yedekleme stratejisi: $RCLONE_CMD $RCLONE_OPTS"
if [ ! -z "$CRON_SCHEDULE" ]; then
echo "• Cron zamanlaması: $CRON_SCHEDULE"
fi
echo "• Log dosyası: /var/log/yandex_backup.log"
echo ""
echo -e "${YELLOW}Faydalı Komutlar:${NC}"
echo "• Manuel yedekleme: rclone $RCLONE_CMD $BACKUP_DIR yandex:DirectAdmin-Backups $RCLONE_OPTS"
echo "• Yandex içeriği: rclone ls yandex:DirectAdmin-Backups"
echo "• Log kontrolü: tail -f /var/log/yandex_backup.log"
echo "• Cron düzenleme: crontab -e"
echo "• Yapılandırma: rclone config"
echo ""
echo -e "${GREEN}Yedekleme sistemi hazır!${NC}"
echo "Sorularınız için: https://alestaweb.com"
setup_yandex_backup.sh olarak kaydedin ve çalıştırın:
chmod +x setup_yandex_backup.sh
./setup_yandex_backup.sh
Sebep: 2FA aktif ama normal şifre kullanılmış veya şifre yanlış.
Çözüm:
# App Password oluştur
# https://id.yandex.com/security/app-passwords
# Rclone şifresini güncelle
rclone config
e → yandex → y → [App Password gir] → q
# Test et
rclone ls yandex:
Sebep: 10 GB ücretsiz alan dolmuş.
Çözümler:
rclone delete yandex:DirectAdmin-Backups --min-age 30drclone syncSebep: Bant genişliği sınırı veya büyük dosyalar.
Çözümler:
# Bant genişliği limitle
rclone sync /backup yandex: --bwlimit 1M
# Paralel transfer sayısını artır
rclone sync /backup yandex: --transfers 8
# Büyük dosyaları sıkıştır
tar czf backup.tar.gz /home/admin/admin_backups/
rclone copy backup.tar.gz yandex:
Kontrol adımları:
# Cron servisini kontrol et
systemctl status cron
# Cron loglarını kontrol et
grep CRON /var/log/syslog
# PATH sorunu için tam yol kullan
which rclone # /usr/bin/rclone
# Crontab'da tam yol kullan
0 3 * * * /usr/bin/rclone sync ...
Çözüm:
# CA sertifikalarını güncelle
apt update && apt install ca-certificates
# Alternatif: SSL doğrulamasını devre dışı bırak (güvensiz!)
rclone sync /backup yandex: --no-check-certificate
Çözüm:
# Buffer boyutunu küçült
rclone sync /backup yandex: --buffer-size 0
# Chunk boyutunu küçült
rclone sync /backup yandex: --webdav-chunk-size 10M
Çözüm:
# DirectAdmin dosyalarına erişim izni
chmod -R 755 /home/admin/admin_backups
# Root olarak çalıştır
sudo rclone sync /home/admin/admin_backups yandex:
Kontrol:
# Doğru klasörü kontrol et
rclone lsd yandex: # Kök dizin
rclone ls yandex:DirectAdmin-Backups # Yedek klasörü
# Web arayüzünde kontrol et
# https://disk.yandex.com.tr/client/disk
# Şifreli remote oluştur
rclone config
n → yandex-crypt → crypt → yandex:encrypted
# Şifreleme şifresi gir (2 kez)
# Şifreli yedekleme
rclone sync /backup yandex-crypt:
# Artık Yandex'te bile dosyalar okunamaz!
# Yedekleme script'i ile bildirim
cat > /usr/local/bin/yandex_backup.sh << 'EOF'
#!/bin/bash
LOG_FILE="/var/log/yandex_backup.log"
EMAIL="admin@domain.com"
SUBJECT="Yandex Backup Report"
# Yedeklemeyi çalıştır
/usr/bin/rclone sync /home/admin/admin_backups yandex:DirectAdmin-Backups \
--log-file $LOG_FILE 2>&1
# Sonucu kontrol et
if [ $? -eq 0 ]; then
STATUS="✓ Başarılı"
else
STATUS="✗ Başarısız"
fi
# E-posta gönder
echo "Yedekleme Durumu: $STATUS
Tarih: $(date)
Log: $(tail -20 $LOG_FILE)" | mail -s "$SUBJECT" $EMAIL
EOF
chmod +x /usr/local/bin/yandex_backup.sh
# Cron'da bu script'i kullan
0 3 * * * /usr/local/bin/yandex_backup.sh
# Google Drive ekle
rclone config → n → gdrive → ...
# Dropbox ekle
rclone config → n → dropbox → ...
# Hepsine yedekle
rclone sync /backup yandex:Backups &
rclone sync /backup gdrive:Backups &
rclone sync /backup dropbox:Backups &
wait
# Boyut kontrolü
rclone size yandex:DirectAdmin-Backups
# Dosya sayısı
rclone ls yandex:DirectAdmin-Backups | wc -l
# Eski dosyaları listele
rclone ls yandex: --min-age 30d
# Grafana/Prometheus entegrasyonu için JSON
rclone size yandex: --json > /var/log/backup_stats.json

Tebrikler! DirectAdmin Yandex Disk otomatik yedekleme sistemini başarıyla kurdunuz!
Kurduğunuz Sistemin Özellikleri:
En İyi Uygulamalar:
Gelecek Adımlar:
Önemli Hatırlatmalar:
Faydalı Kaynaklar:
Başarılar! Verileriniz artık güvende!
Destek: Sorun yaşarsanız alestaweb.com üzerinden iletişime geçebilirsiniz.