Rsync yardımcı programını kullanarak dosya ve klasörleri kopyalama ve yedekleme

Rsync hakkında daha fazla bilgi

Rsync, dosya ve klasörleri kopyalamak için hızlı ve çok yönlü bir araçtır. Yardımcı program, verileri hem yerel olarak hem de Introserv'in Bulut Depolaması dahil olmak üzere diğer ana bilgisayarlara kopyalayabilir.
Yardımcı program seçenekleri, veri kopyalama ve yansıtmanın birçok yönünü kontrol etmenizi sağlar.
Ana özelliklerden biri, sunucular arasında kopyalama işlemini hızlandırmanıza olanak tanıyan gönderme sırasında verileri sıkıştırma yeteneğidir.
Diğer bir avantaj ise aynı dosyaları kopyalarken istisna olmasıdır. Bu nedenle, yalnızca farklı dosyalar kopyalanacak veya aktarılacaktır, bu da şüphesiz büyük dizinleri senkronize ederken zaman kazandıracaktır.

Yardımcı program seçenekleri

SSH protokolünü kullanarak Introserv'den uzak Bulut Depolamaya dosya ve dizin kopyalamak için Rsync kullanma örneklerine bakalım. Önemli! Benzer komutlar, yalnızca hedef sunucuyu belirterek, dizinleri ve dosyaları SSH aracılığıyla herhangi bir uzak sunucuya kopyalamanıza izin verecektir.

Şimdi en sık kullanılacak bazı ana yardımcı program seçeneklerine bir göz atalım. Mevcut seçeneklerin daha ayrıntılı bir listesi man belgelerinde(man rsync komutu) mevcuttur:

-v - süreç hakkında ayrıntılı bilgi görüntüler
-c - dosya sağlama toplamlarını kontrol et
-q - minimum bilgi
-a - arşivleme modu
-R - göreli yollar
-y - yeni dosyaların üzerine yazma
-b - yedek kopya oluştur
-l - sembolik bağlantıları kopyala
-L - bağlantıların içeriğini kopyala
-H - sabit bağlantıları kopyala
-g - grubu kaydet
-p - dosya izinlerini koru
-t - değişiklik zamanını kaydet
-x - yalnızca bu FS'de çalışır
-e - başka bir aktarım protokolü kullanın (örneğin, ssh)
-z - dosyaları aktarmadan önce sıkıştırır
--delete - kaynakta olmayan dosyaları siler
--exclude - dosyaları hariç tut
--recursive - dizinleri özyinelemeli olarak numaralandırır
--no-recursive - özyinelemeyi devre dışı bırak
-progress - dosya aktarım ilerlemesini görüntüler
--stat - aktarım istatistiklerini göster
--max-size - aktarım için maksimum dosya boyutu
--bwlimit - dosya aktarımları için hız sınırı

Kısa sözdizimi açıklaması

rsync -az --progress /home/kullanıcı/test.file boxxxx@boxxxxx.introserv.cloud:/remote_folder/

Aktarılan dosyanın arşivlenmesi, aktarılmadan önce sıkıştırılması ve ayrıca kopyalama ilerlemesinin ekranda görüntülenmesi gerektiğini belirten-az --progress seçenekleri;

/home/user/test.file bu dosyanın yolu ve aktarılması gereken gerçek dosyanın kendisidir;

boxxxx@boxxxxx.introserv.cloud: bu hedef kaynaktır (örneğimizde bulut depolama alanıdır, ancak uzak bir sunucu da olabilir) boxxxx kullanıcı adıdır, @ işaretinden sonra uzak sunucunun kaynak adı veya IP adresidir;

/remote_folder/ bu uzak kaynaktaki bir klasördür. Örneğimizde - Introserv Cloud Storage'da.

Bir dosyayı uzak depolama alanındaki bir klasöre kopyalama

rsync -az --progress /home/user/Desktop/test.file boxxxxx@boxxxxx.introserv.cloud:/remote_folder/

Depolamaya bağlanmak için sizden bir şifre istenecektir:

Parolayı girin ve devam edin, ilerlemeyi ve dosya aktarım hızını göreceksiniz:

Klasörü uzak depolama alanındaki klasöre kopyalama

Kaynak klasör ve hedef klasör satırlarındaki eğik çizgilere dikkat edin. Kaynak klasörde eğik çizgi olmaması, yerel Desktop klasörünü tüm içeriğiyle birlikte remote_folder klasörüne özyinelemeli olarak aktarmak istediğimizi gösterir

rsync -azr --progress /home/user/Desktop boxxxx@boxxxx.introserv.cloud:/remote_folder/

Dizinin ve içindeki tüm dosyaların aktarıldığını göreceksiniz:

Yerel bir klasörün içeriğini uzak depolama alanındaki bir klasöre kopyalama

Kaynak klasörün sonundaki eğik çizgiye dikkat edin. Eğik çizginin varlığı, yardımcı programın yerel klasörün içeriğini uzak depolama alanındaki bir klasöre kopyalaması gerektiğini gösterir

rsync -avzr --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

İlerleme durumunu ve kopyalama hızını göreceksiniz:

Bir klasörü uzak depolama biriminden yerel sunucu klasörüne kopyalama

Rsync kullanarak, uzaktaki bir depolama alanından bir klasörün kopyasını başlatabilirsiniz. Komut şu şekildedir:

rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder /home/user/Desktop/

Uzaktaki bir klasörü yerel sunucudaki bir klasöre kopyalamanın ilerlemesini ve hızını göreceksiniz:

Bir klasörün içeriğini uzak depolama alanından yerel sunucu klasörüne kopyalama

Burada kaynak klasör yolunun sonundaki eğik çizgiye de dikkat etmek gerekir. Varlığı, yalnızca klasörün içeriğinin kopyalanması gerektiğini gösterir

rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder/ /home/user/Desktop/

Dosyalar hariç ve/veya dahil olmak üzere bir klasörün içeriğini kopyalama

Yardımcı program, hangi dosyaların aktarılacağını ve hangilerinin hariç tutulacağını açıkça belirtmenize olanak tanır. Bunu yapmak için --include ve --exclude seçeneklerini kullanın.

rsync -azr --progress --include 'test.file' --exclude 'test.file2' /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Yalnızca --include seçeneği ile belirtilen bir dosyanın aktarıldığını göreceksiniz. Lütfen include ve exclude seçeneklerinin birbirinden ayrı olarak kullanılabileceğini unutmayın

Yalnızca hedef klasördeki dosyalardan farklı olan dosyaları kopyalayın

Aynı dosyaların kopyalanmasını iptal etmek için, dosya sağlama toplamlarını kontrol etmek üzere -c seçeneğini kullanmalısınız. Bu, zaten hedef klasörde bulunan dosyaları kopyalama işleminin dışında tutmanıza olanak tanır

rsync -azrс --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Uzak depolama alanında zaten bulunan test.odt dosyası haricinde yalnızca 3 dosyanın uzak klasöre kopyalandığını göreceksiniz:

Standart olmayan bir SSH portu ile SSH üzerinden Rsync kullanma

SSH bağlantı noktası değiştirilmiş bir sunucudan/sunucuya dosya aktarmak için -e 'ssh -p port_number' seçeneğini kullanın

SSH portunun 44 olarak değiştirildiği bir sunucuya dosya kopyalama komutu aşağıdaki gibi görünecektir:

rsync -azrс --progress -e 'ssh -p44' /home/user/Desktop/ user@server_ip:/remote_folder/