KadikoyAJANS adlı üyeden alıntı:
mesajı görüntüle
Alıntı
579
●93.472
#!/bin/bash
#Dizin belirtiyoruz
DIZIN="/degisikliklerin/kaydedilecegi/dizin/yolu"
#Değişikliker timestamp damgası ile klasör oluşturulup içine atılacak
INCREMENTDIR=`date +%s`
#Değişikliklerin yükleneceği klasör
YOLU="/degisiklikler/"
#DIZIN, YOLU ve INCREMENTDIR yollarını birleştiriyoruz. Backup alınacak tam yolu belirliyoruz.
BIRLESTIR="$DIZIN$YOLU$INCREMENTDIR"
#Yedekleme gün sonu hangi dizine yapılacak
BACKUPDIR="/gun/sonu/tam/backup/alinacak/dizin"
#Gün sonu yedekleme ismi
TARIH=`date +%Y-%m-%d`
#Uzak sunucu yolu
UZAKSUNUCU="root@ipadresi:/yedek/alinacak/tam/dizin/yolu"
#Yedek sunucu yolu
YEDEKSUNUCU="/yedek/sunucu/yedek/tam/dizin/yolu"
#Ne zaman yedekler silinecek
expired=30
#rsync kodumuz
sshpass -p "rootsifresiburaya" rsync --backup --backup-dir=$BIRLESTIR -av $UZAKSUNUCU $YEDEKSUNUCU
#Değişikliklerin olduğu dizine gidiyoruz.
cd $DIZIN$YOLU
#klasörler listelenip silmeye çalışılıyor. Eğer içi boşsa silinecektir.
ls -d */ | while read d
do
rmdir $d
done
#Bu Alan Günde 1 Kere Çalışmalı. Bu işlem bitmeden cron başka işlem yapmamalı.
cd $BACKUPDIR
#DIZIN yolu tar.gz olarak sıkıştırılıyor.
tar -czf $TARIH.tar.gz $DIZIN
#Değişiklikler klasörü siliniyor.
rm -r $DIZIN$YOLU
#BACKUPDIR içinde belirtilen günden uzun olanlar siliniyor.
find $BACKUPDIR -type d -mtime +$expired | xargs rm -Rf