Anasayfa » nasıl » Linux'ta Verilerinizi Yedeklemek için rsync Nasıl Kullanılır

    Linux'ta Verilerinizi Yedeklemek için rsync Nasıl Kullanılır

    rsync, verileri yedeklemek ve senkronize etmek için inanılmaz derecede çok yönlülük sağlayan Unix benzeri sistemler için oluşturulmuş bir protokoldür. Dosyaları farklı dizinlere yedeklemek için yerel olarak kullanılabilir veya Internet üzerinden diğer ana bilgisayarlarla senkronize edilecek şekilde yapılandırılabilir.

    Windows sistemlerinde kullanılabilir, ancak yalnızca çeşitli bağlantı noktaları (Cygwin gibi) aracılığıyla kullanılabilir, bu nedenle Linux'ta kurulum hakkında konuşacağız. Öncelikle, rsync istemcisini kurmamız / güncellememiz gerekiyor. Red Hat dağıtımlarında “yum install rsync” komutu Debian'da “sudo apt-get install rsync” ifadesidir.


    Red Hat / CentOS'taki komut, root olarak giriş yaptıktan sonra (Red Hat dağıtımlarının sudo metodunu desteklediğini unutmayın)..


    Debian / Ubuntu'daki komut.

    Yerel yedeklemeler için rsync kullanma

    Bu eğitimin ilk bölümünde, dosyaları Directory1'den Directory2'ye yedekleyeceğiz. Bu dizinlerin her ikisi de aynı sabit sürücüdedir, ancak dizinler iki farklı sürücüde mevcutsa bu tam olarak aynı şekilde çalışır. Ne tür bir yedekleme yapılandırmak istediğinize bağlı olarak, buna yaklaşmamızın birkaç farklı yolu vardır. Çoğu amaç için, aşağıdaki kod satırı yeterli olacaktır:

    $ rsync -av --delete / Dizin1 / / Dizin2 /

    Yukarıdaki kod Directory1'in içeriğini Directory2 ile senkronize eder ve ikisi arasında fark bırakmaz. Rsync, Directory2'nin Directory1'in sahip olmadığı bir dosyaya sahip olduğunu tespit ederse, onu silecektir. Rsync, Directory1'de değiştirilmiş, yaratılmış veya silinmiş bir dosya bulursa, aynı değişiklikleri Directory2'ye yansıtacaktır..

    Özel ihtiyaçlarınızı kişiselleştirmek için rsync için kullanabileceğiniz birçok farklı anahtar vardır. Yukarıda belirtilen kod rsync'e yedeklerle ne yapması gerektiğini söyler:

    1. -a = özyinelemeli (dizinlere tekrarlama), bağlantılar (sembolik bağlantıları, sembollere kopyala), izinler (izinleri koru), süreleri (değişiklik zamanlarını koru), grup (grubu koru), sahip (sahibi koru), cihaz dosyalarını koru ve özel dosyaları koru.
    2. -v = ayrıntılı. Ayrıntılı kısmın önemli olduğunu düşünmemin nedeni, rsync'in ne yedeklediğini tam olarak görebilmenizdir. Bunu düşünün: Sabit sürücünüz kötü gidiyorsa ve bilginiz olmadan dosyaları silmeye başlarsa, o zaman rsync komut dosyanızı çalıştırırsınız ve bu değişiklikleri yedeklemelerinize gönderir, böylece almak istemediğiniz bir dosyanın tüm örneklerini siler kurtulmak?
    3. -delete = Bu, rsync'e Directory2'de bulunan ve Directory1'de olmayan dosyaları silmesini söyler. Bu seçeneği kullanmayı tercih ederseniz, yukarıda belirtilen nedenlerle ayrıntılı seçenekleri de kullanmanızı öneririz..

    Yukarıdaki betiği kullanarak, burada Directory1'den Directory2'ye yedekleme yapmak için rsync kullanılarak oluşturulan çıktı elde edilir. Ayrıntılı anahtar olmadan, bu kadar ayrıntılı bilgi almayacağınızı unutmayın..

    Yukarıdaki ekran görüntüsü bize File1.txt ve File2.jpg dosyasının Dizin2'de bulunan kopyalardan ya yeni olduklarını ya da başka bir şekilde değiştirildiğini ve yedeklendiklerini gösterir. Noob ipucu: rsync komutumdaki dizinlerin sonundaki eğik çizgilere dikkat edin - bunlar gerekli, onları hatırladığınızdan emin olun.

    Bu eğitimin sonuna doğru birkaç kullanışlı anahtar daha kullanacağız, ancak tam listeyi görmek için “man rsync” yazabileceğinizi ve kullanılacak anahtarların tam bir listesini görüntüleyebileceğinizi unutmayın.

    Bu konuda yerel yedeklemeler söz konusu olduğunda onu kapsar. Anlatabileceğiniz gibi, rsync kullanımı çok kolaydır. Verileri İnternet üzerinden harici bir ana bilgisayarla senkronize etmek için kullanırken biraz daha karmaşık hale gelir, ancak bunu yapmanın basit, hızlı ve güvenli bir yolunu göstereceğiz.

    Harici yedeklemeler için rsync kullanma

    rsync, harici yedeklemeler için birkaç farklı yolla yapılandırılabilir, ancak SSH üzerinden rsync tünellemenin en pratik (en kolay ve en güvenli) yöntemini gözden geçireceğiz. Çoğu sunucu ve hatta birçok istemcide zaten SSH var ve rsync yedekleriniz için kullanılabilir. Bir Linux makinesinin yerel ağda bir başkasına yedeklenmesini sağlama işlemini size göstereceğiz. Bir yerde internette bir yerde bir sunucunun bulunması durumunda işlem tam olarak aynı olurdu, sadece 22 numaralı portun (ya da hangi SSH'yi yapılandırdıysanız), sunucu tarafındaki herhangi bir ağ cihazına yönlendirilmesi gerekeceğini unutmayın..

    Sunucuda (yedekleri alacak bilgisayar), SSH ve rsync'in kurulu olduğundan emin olun..

    # yum -y kurulum ssh rsync

    # sudo apt-get yüklemek ssh rsync

    Sunucuya SSH ve rsync kurmak dışında yapılması gereken tek şey, sunucuya dosyaların yedeklenmesini istediğiniz depoları ayarlamak ve SSH'nin kilitlendiğinden emin olmaktır. Kullanmayı planladığınız kullanıcının karmaşık bir şifresi olduğundan emin olun ve SSH'nin dinlediği bağlantı noktasını açmak da iyi bir fikir olabilir (varsayılan 22).

    Yerel bir bilgisayarda rsync kullanmak için yaptığımız aynı komutu çalıştıracağız, ancak SSH üzerinden rsync'i yerel ağımdaki bir sunucuya tünellemek için gerekli eklemeleri yapacağız. “192.168.235.137” e bağlanan ve yukarıdakilerle aynı anahtarları (-av -delete) kullanan “geek” kullanıcısı için aşağıdakileri çalıştıracağız:

    $ rsync -av -delete -e ssh / Dizin1 / [email protected]: / Dizin2 /

    22'den başka bir bağlantı noktasını dinleyen SSH'niz varsa, 12345 bağlantı noktasını kullandığım örnekte olduğu gibi bağlantı noktası numarasını belirtmeniz gerekir:

    $ rsync -av -delete -e 'ssh -p 12345' / Dizin1 / [email protected]: / Dizin2 /

    Yukarıdaki ekran görüntüsünden görebileceğiniz gibi, ağ üzerinden yedekleme yaparken verilen çıktı, yerel olarak yedekleme yaparken olduğu gibi hemen hemen aynıdır, değişen tek şey kullandığınız komuttur. Ayrıca bir şifre sorduğuna dikkat edin. Bu SSH ile kimlik doğrulaması yapmaktır. RSA anahtarlarını bu işlemi atlamak için ayarlayabilirsiniz, bu aynı zamanda rsync'i otomatikleştirmeyi de basitleştirir..

    Rsync yedeklerini otomatikleştirme

    Cron, Linux'ta rsync gibi komutların çalıştırılmasını otomatikleştirmek için kullanılabilir. Cron'u kullanarak Linux sistemimizin her gece yedeklemesini çalıştırabiliriz, ancak çoğu zaman çalıştırılmasını istersiniz.

    Giriş yapmış olduğunuz kullanıcının cron tablosu dosyasını düzenlemek için aşağıdaki komutu çalıştırın:

    $ crontab -e

    Bu dosyayı düzenlemek için vi ile aşina olmanız gerekir. İnsert için “I” yazıp cron tablosu dosyasını düzenlemeye başlayın..

    Cron aşağıdaki sözdizimini kullanır: saatin dakikası, günün saati, ayın günü, yılın ayı, haftanın günü, komut.

    İlk başta biraz kafa karıştırıcı olabilir, bu yüzden size bir örnek vereyim. Aşağıdaki komut her gece saat 22: 00'de rsync komutunu çalıştırır:

    0 22 * ​​* * rsync -av --delete / Dizin1 / / Dizin2 /

    İlk “0” saatin dakikasını ve “22” saat 22: 00'yi belirtir. Bu komutun günlük çalıştırılmasını istediğimizden, kalan alanları yıldız işaretleriyle bırakıp rsync komutunu yapıştıracağız..

    Cron'u yapılandırdıktan sonra, escape tuşuna basın ve ardından “: wq” yazın (tırnak işaretleri olmadan) ve enter tuşuna basın. Bu, vi'deki değişikliklerinizi koruyacaktır.

    Cron bundan daha derinlemesine gelebilir, ancak devam etmek bu eğitimin kapsamı dışında olacaktır. Çoğu kişi basit bir haftalık veya günlük yedekleme yapmak ister ve gösterdiklerimizi kolayca başarabilirsiniz. Cron hakkında daha fazla bilgi için lütfen man sayfalarına bakınız..

    Diğer kullanışlı özellikler

    Yapabileceğiniz başka bir faydalı şey de yedeklerinizi bir zip dosyasına koymak. Zip dosyasının nereye yerleştirilmesini istediğinizi belirtmeniz ve ardından bu dizini yedekleme dizininizde rsync olarak belirtmeniz gerekir. Örneğin:

    $ zip /ZippedFiles/archive.zip / Directory1 / && rsync -av --delete / ZippedFiles / / Directory2 /

    Yukarıdaki komut, dosyaları Directory1'den alır, /ZippedFiles/archive.zip dosyasına ve ardından bu dizini Directory2'ye rsyncs olarak koyar. İlk olarak, bu dosyanın büyük değişiklikler için verimsiz olduğunu ispatlayabileceğini düşünebilirsiniz, çünkü zip dosyası bir dosyada en küçük değişiklik yapıldığında her zaman değişecektir. Bununla birlikte, rsync yalnızca değiştirilen verileri aktarır, bu nedenle zip dosyanız 10 GB ise ve ardından Directory1'e bir metin dosyası eklerseniz, rsync tüm eklediğinizin (bir zip içinde olsa bile) olduğunu bilir ve yalnızca birkaç kilobayt aktarır değiştirilen veri.

    RSync yedeklemelerinizi şifrelemenin birkaç farklı yolu vardır. En kolay yöntem, şifrelemeyi sabit sürücünün üzerine (dosyalarınızın yedeklendiği) kurmaktır. Başka bir yol da, dosyalarınızı uzak bir sunucuya (ya da ne kadar yedekleme yapıyor olursanız olun) başka bir sabit diske göndermeden önce şifrelemektir. Bu yöntemleri sonraki makalelerde ele alacağız.

    Seçtiğiniz seçenek ve özellikler ne olursa olsun, rsync bugüne kadarki en verimli ve çok yönlü yedekleme araçlarından biri olduğunu kanıtlar ve hatta basit bir rsync betiği verilerinizi kaybetmekten kurtarabilir.