BASH Linux

Bash Script: Dropbox Uploader

Linux tabanlı işletim sistemine sahip web sunucuları üzerinde yedekleme işlemleri için kullanılabilecek çözüm önerilerinden biri olan Dropbox Uploader, NFS ve uzak FTP yedekleme sistemlerine iyi bir alternatif olabilir. Dropbox API aracılığıyla, Dropbox sunucuları ile güvenli bir iletişim kurarak herhangi bir projenizi, herhangi bir kullanıcının dosyalarını, kullandığınız servislerin konfigürasyon dosyaları ve verilerini depolamanıza olanak sağlamaktadır.

cPanel ve DirectAdmin hosting yönetim panellerinin yedekleme/geri yükleme script dosyaları ile entegre edebileceğiniz gibi, sizin yönetiminizde olan, üzerinde Apache/Nginx, MySQL, PHP gibi servislerin yüklü olduğu web sunucularında yedekleme/geri yükleme işlemi için oluşturduğunuz/oluşturacağınız BASH scriptler ile de  entegre edebilirsiniz.

Dropbox dropbox uploader

Dropbox Uploader BASH scriptinin konfigürasyonu, bu BASH scriptin parametreleri ve kullanımı, ek olarak hazırladığım birkaç BASH scripti paylaşmak isterim.

Kurulum ve Konfigürasyon

Web sunucunuza SSH bağlantısı kurarak, konsol üzerinde aşağıdaki komutları çalıştırın. Dropbox Uploader BASH scripti dosyası, konfigürasyon tamamlanana kadar root dizini altında bulunsun.

cd /root
curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh
chmod a+x dropbox_uploader.sh

Şimdi, Dropbox Apps sayfasına giderek bir uygulama oluşturun. Dropbox Apps üzerinde oturum açtıktan sonra, Create App butonuna tıklayın ve Dropbox API app seçeneğini işaretleyin. İzinleri düzenleyin ve uygulamanıza bir isim verin (örneğin ABCBackup).  Create App butonuna tıklayın ve uygulama oluşturma işlemlerini tamamlayın. Açılan sayfa içerisinde App Key ve App Secret kodları yer almaktadır. Bu kodları not alın, konfigürasyon işlemi sırasında bu bilgileri girmeniz gerekecek.

./dropbox_uploader.sh

Dropbox Uploader BASH scriptini çalıştırın ve sizden istenen App Key ve App Secret kodlarını girin. Uygulamayı oluştururken App Folder ve Full Dropbox izinlerinden hangisini seçtiyseniz, App Folder için a, Full Dropbox için f yazıp ilerleyin. Konsolda tarayıcı üzerinde çalıştırmanız için link üretilecektir, linki kopyalayıp tarayıcıda çalıştırın ve web sununucuza izin verin.

mv dropbox_uploader.sh /usr/bin/dropboxUploader

Dropbox Uploader BASH scriptini /usr/bin dizini altına taşıyarak her dizinden çalıştırılabilir hale getirin.

Kullanım

Öncelikle web sunucusu üzerinde birkaç test dosyası hazırlayalım. Örneğin test.txt, info.php ve deneme.zip dosyaları oluşturabilirsiniz. Bu dosyalar ile Dropbox parametrelerini test edelim.

Dropbox’a dosya yüklemek

dropboxUploader upload /root/test.txt /test.txt

Dropbox’tan dosya indirmek

dropboxUploader download /test.txt /root/test2.txt

Dropbox’ta dizin oluşturmak

dropboxUploader mkdir test1

Dropbox’ta dosya kopyalamak

dropboxUploader copy /test.txt /test2.txt

Dropbox’ta dosya taşımak

dropboxUploader move /test2.txt /test3.txt

Dropbox’ta uzaktan dosya kaydetmek

dropboxUploader saveurl "https://WordPress.org/latest.zip" "/wordpress.zip"

Dropbox’ta dosya ve dizinleri listelemek

dropboxUploader list /

Dropbox’tan dosya silmek

dropboxUploader delete /test3.txt

Yardımcı BASH Script’ler

cPanel için hazırlamış olduğum yedekleme, geri yükleme ve çoklu yedekleme işlemleri için BASH scriptleri de aşağıda yer almaktadır.

cPanelBackup.sh

#!/bin/bash
for fn in $1; do
/scripts/pkgacct $fn
/usr/bin/dropboxUploader upload /home/cpmove-$fn.tar.gz /cpmove-$fn.tar.gz
rm /home/cpmove-$fn.tar.gz
done

cPanelBackup.sh dosyasını örnekteki gibi tetikleyebilirsiniz.

sh cPanelBackup.sh kullanici

cPanel‘in tam yedekleme script’i çalışacak ve oluşturulan tam yedek dosyası Dropbox’a yüklenip, sunucudan silinecektir.

cPanelRestore.sh

#!/bin/bash
for fn in $1; do
rm -rf /home/cpmove-$fn.tar.gz
/usr/bin/dropbox_uploader.sh download /cpmove-$fn.tar.gz /home/cpmove-$fn.tar.gz
/scripts/restorepkg --force $fn
rm -rf /home/cpmove-$fn.tar.gz
done

cPanelRestore.sh dosyasını örnekteki gibi tetikleyebilirsiniz.

sh cPanelRestore.sh kullanici

cPanel‘in geri yükleme script’i çalışacak ve Dropbox’tan indirilecek tam yedek dosyası ile sunucuya geri yükleme işlemi yapılacaktır.

cPanelMultipleBackup.sh

#!/bin/bash
while read line
do
echo "The backup process is started for $line:"
sh /usr/bin/cpanelBackup.sh $line
echo "The backup process is completed for $line"
done < /root/backup-list.txt

root dizini altında backup-list.txt adında bir dosya oluşturup, çoklu yedekleme işlemi yapılacak kullanıcıları alt alta listeleyin. Bu BASH script’i genellikle cronjob ile kullanmak istediğinizde işinize yarayacaktır. Dosyayı aşağıdaki gibi tetikleyebilirsiniz.

sh cPanelMultipleBackup.sh

Bash Script: Dropbox Uploader 1 dropbox uploader

Dropbox ücretsiz hesaplar için 2 gbyte disk alanı sunmaktadır. Aylık $9.99 ödeyerek 1 Tbyte disk alanına sahip olabiliyorsunuz. Diğer plan seçenekleri için bu adresten ulaşabilirsiniz.

Github Sayfaları:

Andrea Fabrizi: Dropbox Uploader Gürkan Biçer: Dropbox Uploader

Yazar Hakkında

Gürkan Biçer

Gürkan Biçer

PHP Developer, Network & System Administrator

Yorum Yazın