elisa

NASIL YAPILIR - Verilerinizi Rsync ve SSH kullanarak yedekleyin

  • 11

Bu fikre ilk başladığımda, SSH meselesi beni şaşırttı çünkü çoğunlukla SSH'nin son kullanıcının kullanması kolay olacağını düşünmemiştim. Tasarımda SSH çok karmaşık olsa da, son kullanıcının bir kimlik doğrulama anahtarı seti kurmasını çok kolaylaştırdı. Temel olarak, SSH, şifre olmadan elde edilebilecek 1'e 1 doğrulanmış bir bağlantıdır. Bu işlem gerçekleştiğinde, otomatik olarak çalışmak için rsync'i kullanabilirsiniz. 

Başlamadan önce, lütfen söz konusu dosya sunucunuza openssh-server'ın kurulu olduğundan emin olun.

Kod:
sudo apt-get install openssh-server'ı kurar

Daha sonra, bir anahtar çifti kurmamız gerekiyor. Bir genel anahtar ve özel anahtar alacaksınız.

Kod:
ssh-keygen

Anahtar çifti için bir şifre isteyip istemeyeceğiniz gibi bazı sorular sorulacak. Hayır'ı seçtim ve temelde varsayılan her şeyi bıraktım. Şifre olmadan gittim çünkü SSH anahtarları oldukça güvenli ve ayrıca otomatik olmasını istedim. Hala bir şifre varken bu işlemi nasıl otomatikleştirebileceğimden emin değildim. 

Genel anahtarın sunucudaki yetkili_keys dosyasına kopyalanması gerekir. Kullanışlı bir komut sayesinde bu acısızdır. Jason@192.168.1.150 kurulumunuzun ne olacağı ile değiştirin.

Kod:
ssh-copy-id jason@192.168.1.150

Sizden şifrenizi ister. Parolanızı, dosya sunucusunda doğruladığınız kullanıcı hesabına girin. Bir kez yaptıktan sonra koşabilmeniz gerekir:

Kod:
ssh jason@192.168.1.150

Bir şifre sormadıysa ve isteminiz değiştiyse, gitmeniz iyi olur. Sizden bir şifre istediyseniz, muhtemelen bir şeyler kapalıdır. Lütfen, SSH tuşlarıyla uğraşırsanız (onları silerek, yenilerini ekleyerek, vb.) Yeniden başlatmanız gerekeceğini (bazı kişilerin oturumu kapatıp oturum açmamı istediğini söyledi) sıfırlamanız gerektiğini unutmayın. SSH anahtarının oturumunuza kilitlendiğine dair eğitimli tahminde bulunmak dışında neler olduğunu açıklamak için yeterince bilgim yok. Yaptığım gibi etrafta dolaşmayı planlamıyorsanız, SSH anahtarlarını silip tekrar tekrar öğrenme amaçlarımı oluşturduğumda, bu sorunla karşılaşmayacaksınız. Ama yaparsan bunu dışarıya atmak istedim.

Yani, SSH ayarlandı ve gitmek için iyi bir konum. Şimdi ne olacak? Rsync'in sırası. Kapıyı SSH ile açtınız, şimdi rsync ile vitese takmanız gerekiyor. Rsync uzak bir senkronizasyon aracıdır. Benim kullanımlarım için, bu oldukça harika. Size daha fazla bilgi için rsync man sayfasını okumanızı öneriyorum. Sadece bir not, bunu Linux kullanan herkes okuyabilir, lütfen man sayfalarını aklınızda bulundurun. Google'dan daha hızlılar. Dürüst. Terminale gidip "man rsync" yazarak bunları okuyabilirsiniz. Tabii ki, rsync'i başka bir komutun yerine "man cp", vb 

Hakkında daha fazla okumak için kullanabilirsiniz . Man sayfası bir grup bayrağın fonksiyonelliğini gözden geçirir. Şahsen kullandığım birkaç tane var ve onları kendi kelimelerimle anlatacağım.

-a Arşiv modu. Bu, zamanı, izinleri, sahibi, grubu ve diğer çeşitli ayarları kaynakla aynı tutar. -A'yı kullanmayı seviyorum çünkü dosya sunucusundaki verilerimin masaüstündeki verilerimle eşleşiyor, hatta neyin ve zaman damgasının sahibi olduğuna göre. 

-z Sıkıştırma modu. Bunu yakın zamana kadar kullanmadım. Bir fark görüp görmediğimden emin değilim, çünkü rsync başlamak için oldukça hızlı, ama ben bunu oralarda tutuyorum, çünkü neden?

--exclude = Hariç tutma modu. Bu, belirli bir dizini, çöp kutusunu, videoları vb. Hariç tutmak istiyorsanız. Örneğin, TÜM gizli dosyaları / klasörleri hariç tutmak istediğinizi varsayalım ... yapardınız --exclude =. * Eşittir işaretinden sonra dikkat edin bir süre ve *? Bu, HER ŞEY anlamına gelen joker kartı yapıyor olmanızı sağlar, ancak sadece dönemden sonra. Gizli dosyalar / klasörler bir döneme göre başladığından, bunun nasıl .folder1 .folder2 .folder3, vs.'yi içerdiğini görebilirsiniz. 

Not -Şahsen, kesinlikle .gvfs hariç tavsiye ederim. .gvfs, gnome sanal dosya sistemidir. Temelde ağ kaynakları için bir bağlantı noktası görevi görür. Diyelim ki dosya sunucunuza .gvfs yoluyla erişilebilir. Her şeyi rsync yaparsanız ve .gvfs dosyasını dışlamazsanız, esas olarak dosya sunucunuzdaki verileri kopyalarsınız, çünkü dosya sunucunuz sayesinde birincil klasöründe ve .gvfs aracılığıyla var olur. 

/ home / Jason / Belgeler 
/ home / Jason / Müzik 
/ home / Jason / Resimler 
/home/jason/.gvfs/Documents 
/home/jason/.gvfs/Music 
/home/jason/.gvfs/Pictures

.Gvfs'yi hariç tutarak, hepsini bir arada tutmazsın. Bir ev dizinini yedekliyorsanız, bunu yapmanızı öneririm. Basitçe --exclude = .gvfs kullanmak benim için işe yarar, ancak tam yola ihtiyacınız varsa, elbette --exclude = / home / jason / .gvfs 

--delete olacaktır. kaynakta var. Diyelim ki 100 GB veri içeren bir klasörünüz var ve bu sadece "data" olarak adlandırılıyor. Bunu "data2" olarak değiştirirseniz, sunucunuz toplam 200 GB veri ve data2 @ kopyasını içerir. Sunucunuzdaki verilerin aynı olmasını istiyorsanız, --delete kullanın. Bir çeşit "daha eski dosya yedekliliği" almak istiyorsanız (bazı kişilerin bunu tercih ettiğini biliyorum), --delete kullanmayın.

--progress rsync'i manuel olarak çalıştırırsanız, yanıp sönen bir imleç yerine neler olup bittiğini görebileceksiniz. Bu bayrağı yalnızca komutu el ile çalıştırmak ve ne yaptığını görmek istersem kullanırım. Bunu "şov zamanı" varken kullanmakta zorlanmıyorum ve arka planda otomatik olmasını istiyorum.

Bunun dışında, sadece kaynak ve hedefi ayarlamakla ilgili. Hedef ile başlayalım, çünkü sonuçta, burada SSH ile bağlantı kuruyoruz, bu yüzden biraz farklı. Hedef için, kullanıcıya, sunucuya ve klasör yoluna ihtiyacınız olacak. Dediğim gibi, adım Jason ve dosya sunucum 192.168.1.150. Özellikle sunucumdaki klasör yolum / media / NAS / jason. Benim durumumda NAS, paylaştığım bir ağ sürücüsü, bu yüzden durumuma oldukça özel. Seninkilerin değişmesi muhtemel. Hedefi kendi durumunuza göre ayarlayın. Eğer "yedekleme sürücünüz" / media / storage ise ve frank adında bir klasörünüz varsa, o zaman / media / storage / frank, vs. kullanın.

Kod:
jason@192.168.1.150: / media / NAS / Jason

benim hedefim. 

Şimdi, kaynaklar hakkında. User @ server içermemesi dışında yukarıdaki ile aynı olduğu kadar basitler. 

Tüm giriş dizininizin senkronize edilmesini istiyorsanız, bunu sadece şunu yapabilirsiniz:

Kod:
rsync -az / ana sayfa / jason jason@192.168.1.150: / medya / NAS / jason

Tüm ana dizininizin senkronize edilmesini ancak .gvfs ve --delete bayrağının dışlanmasıyla istiyorsanız, şunu kullanın:

Kod:
rsync -az --exclude = .gvfs --delete / home / jason jason@192.168.1.150: / medya / NAS / jason

Şimdi onu jist mi alıyorsun? 

Ayrıca, birden fazla kaynağa sahip olabileceğinizi unutmayın; bu, yalnızca birkaç özel klasörü dosya sunucunuza yedeklemek istiyorsanız kullanışlı olmasını sağlar. Benim durumumda, sınırlı bir dosya sunucusu alanım vardı, bu yüzden sadece en önemli verileri dosya sunucuma yedeklemek istedim, ki bu benim için Belgeler ve Resimler. Örnek:

Kod:
rsync -az --exclude = .gvfs --delete / home / jason / Resimler / home / jason / Belgeler jason@192.168.1.150: / media / NAS / jason

Daha sonra belirli zamanlarda çalışması için bir Cron işi ayarlayabilirsiniz. Asla rsync'i root olarak çalıştırmam, bu yüzden Cron'a kurduğumda onu jason olarak başlatmaya ayarlıyorum ve sadece yukarıdaki rsync komutunu 

girdim . O zamandan beri Cron rotasından uzaklaştım. Geceleri bilgisayarımı kapattım, ancak dosya sunucum her zaman kalıyor, yedeklemeyi benim için yapmak için "Başlangıç ​​Uygulamaları" bölümüne bir giriş ekledim, bu da sistem başlangıcında çalıştığı için kullanışlıdır. NAS Backup olarak adlandırdım ve yukarıdaki komutu komut alanına koydum. Her şey benden ihtiyaç duyulan sıfır giriş ile bir cazibe gibi çalışır. :gitar:

Hızlı ipucu, düzgün bir rsync GUI'sine bakmak isterseniz, grsync'i ateşleyin. Kullanımı kolaydır ve henüz tam olarak emin değilseniz rsync komutunu yapılandırmanıza yardımcı olacaktır. Sadece not edin, GUI'de --exclude = flag yoktur, bu yüzden onu Ek Seçenekler altından elle eklemek zorundasınız, fakat bu oldukça kolay. Grsync ayrıca -a'yı kullanmaz, ancak bunun yerine -a -t -o -p -g'ye bölünür. Bunun neden küçük / fark yaratmadığını görmek için -a bölümünün altındaki rsync man sayfasını okuyun.

İstediğiniz şekilde formüle ettikten sonra, yeşil ışık vermeden önce düzgün çalıştığından emin olmak için grsync'in özelliklerinden biri olan bir deneme çalışması da yapabilirsiniz. Her şeyin yolunda olduğunu ve işiniz bittiğini varsayarak, bu Grsync işini, Başlangıç ​​Uygulamaları veya Cron ile tahmin edebilirsiniz. Unutmayın, bunun için sözdizimi "grsync -e jobname" dir. Eğer işi "yedekleme" olarak adlandırdıysanız, grsync -e yedeğini çalıştırırdınız. Bu, Cron veya Başlangıç ​​Uygulamaları için aynı olacaktır. 

Başlangıç ​​Uygulamaları'nda çalıştırarak test ettim. Bana veri aktarımının durumunu gösteren oturum açtığımda bir GUI penceresi geliyor. Başlangıç ​​Uygulamaları ile rotaya gidersem ve sadece full rsync komutunu içeri atarsam, bunu tamamen arka planda yapar. 

özet

Yukarıdakiler süper bilgilendirici olacaktı. Umarım bazı kullanıcılar kendileri için çalışan bir yedekleme sistemi kurabilirler. Unutmayın, Bay HardDrive'ın size ne zaman tank atacağını asla bilemezsiniz, bu yüzden önceden planlayın. Aşağıda bir metin dağından okumak istemeyen kullanıcılar için ne yaptığınıza dair kaba bir özet bulunmaktadır. Not: İsminiz Jason olmadıkça ve dosya sunucunuz 192.168.1.150 olmadıkça, kurulumunuzla eşleştirmek için aşağıdaki ayarları değiştirin. 

Sunucu

Kod:
sudo apt-get install openssh-server'ı kurar

müşteri 

Kod:
ssh-keygen

müşteri 

Kod:
ssh-copy-id jason@192.168.1.150

İstemci
"Başlangıç ​​Uygulamaları" - Yeni'yi Seçin - Yedekleyin veya istediğiniz şekilde adlandırın ve komut kutusuna istediğiniz rsync satırını ekleyin:

Kod:
rsync -az --exclude = .gvfs --delete / home / jason jason@192.168.1.150: / medya / NAS / jason

Bilgilendirici metni kestiğinizde ve “noktaya gelin” bölümlerini okuduğunuzda aniden çok daha kolay görünüyor. Herkese, platformunuzdan bağımsız olarak, yeterli yedeğiniz olduğundan emin olun. Her gün akşam 7'de tüm verilerini ve kardeşlerim verilerini yedeklemek için ana babamın bodrum katında bir yedekleme sunucusu bıraktım. Ayrıca verilerimi de dosya sunucuma kopyaladım. Sadece HardDrive'ın size ne zaman tank bırakacağını asla bilemezsiniz ... Baktığım 

tüm yedekleme platformlarının dışında, rsync kolayca en iyisi. Hızlı, kapsamlı, özelleştirilebilir ve daha da iyisi, SSH-key kimlik doğrulaması ile birleştirin ve harika bir kurulumunuz oldu.

Diğer Konular