Rsync ile Senkronizasyon
GNU Genel Kamu Lisans’ı altında dağıtılan rsync, bir çok Linux dağıtımında öntanımlı olarak yüklü gelmektedir. Kaynak ve hedef arasında kopyalama yapmadan önce, bir algoritma üzerinden dosyalar arasındaki farkları tespit eden rsync, hedef’e sadece değişikliğe uğramış ya da tamamen yeni olan dosyaları aktarır. Bu sayede kopyalama süreci hızlandırılmış olur.
Local sunucuda rsync işleminin temel kullanım şekli:
rsync -a kaynakdizin hedefdizin
Uzak bir sunucuya rsync işlemi yapmak için:
rsync -a kaynakdizin user@ipadress:hedefdizin
Uzak bir sunucudan local sunucuya rsync işlemi yapmak için:
rsync -a user@ipadress:kaynakdizin hedefdizin
-a, [–archive] parametresi, bir çok özellik (-rlptgoD anahtarları) için kısaltma görevi görmektedir. -a parametresinin içerdiği özellikler aşağıdaki gibidir:
Yukarıda listelenen tüm parametreler (-rlptgoD ) tek tek girmek yerine kısaca -a paremetresini kulanarak devreye alınır.
-v : verbose özelliği açılarak işlem sırasında detay alınabilmektedir.-vv ya da -vvv şeklinde işlem detayları daha da arttırılabilir.
# rsync -av /home/omeroner/ /media/disks/backup/
# rsync -av /home/omeroner/ omer@192.168.132.11:backups/
# rsync -av /home/omeroner/ [email protected]:backups/
Komutu çalıştırdığınız zaman, 192.168.132.11 ip’li sisteme SSH üzerinden bağlantı sağlanacak ve kullanıcı şifreniz sorulacaktır. Şifrenizi girdikten sonra /home/omeroner/ dizininde bulunan tüm dosyalar, uzaktaki sistemin /home/omeroner dizini altında oluşturulan backups klasörüne SSH üzerinden (güvenli olarak) kopyalanacaktır.
Şifre sorulmamasını istediğiniz durumlar için uzaktaki sisteme key-based authentication (anahthar üzerinden kimlik doğrulaması) ile erişebilmek üzere sisteminizi yapılandırmanız gerekir. Bu yapılandırma için daha önce paylaştığım SSH Anahtarlı Kimlik Doğrulama inceleyebilirsiniz.
Uzak Hostan Lokale Kopyalama
# rsync -av root@192.168.132.132:/backup/ /backup/
# rsync -av [email protected]:/backup/ /backup/
Bu şekilde, 192.168.132.132 ip’li sistemin /backup/ dizininde bulunan dosyalar, lokal sisteminizin /backup/ dizinine transfer edilecektir.
Örnek olarak, /home/omeroner isimli şahsi dizininizde bir çok .tmp dosyası olması ve bu dosyaların yedeklenmesine gerek duymamanız gibi durumlarda, exclude parametresi kullanara:
# rsync -av --exclude '*.tmp' /home/omeroner/ root@192.168.132.132:/backup/
# rsync -av --exclude '*.tmp' /home/omeroner/ [email protected]:/backup/
–exclude parametresi, dosyalar için olduğu gibi dizinler için de kullanılabilmektedir. Örneğin aşağıdaki komut, /home/omeroner/ dizini altındaki “sahsi” isimli klasörü yedekleme işleminden hariç tutmaktadır.
# rsync -av --exclude 'sahsi' /home/omeroner/ root@192.168.12.12:/backup/
# rsync -av --exclude 'sahsi' /home/omeroner/ [email protected]:/backup/
Test modu ile, girdiğiniz rsync komutunun yapacağı işlemleri, herhangi bir kopyalama olmaksızın test edebilirsiniz. Bunun için basitçe komuta [n] parametresini ekleyebilirsiniz:
rsync -avn /home/omeroner root@192.168.132.132:/backup/
daha ayrıntılı bilgi için sayfasını ziyaret edebilirsiniz.