Bir dizini otomatik olarak nasıl arşivleyebilirim?


47

Tek yönlü senkronizasyon yapmak istiyorum.

Folder ABilgisayarımda sürekli güncellenen içerikle yaşıyorum .
Başka bir Folder Bharici HDD'de olan yedekleme amacıyla kullanılır.

Şimdi umduğum şey, A klasöründe bulunan her ne olursa olsun, B klasörüne gitmeli, ancak B'de bulunan ve A "" da bulunmayan bir şeyin A "" kopyalanmamalıdır.

Özet olarak, yedekleme klasörü her şeyi kaynak klasörden kopyalayabilir, ancak yedekleme klasöründen kaynağa hiçbir şey kopyalanmamalıdır.


Bu senkronizasyon değil ....
Braiam

@Braiam o zaman ne denir? OP gibi kendim bir kelime bulamadım. Eğer biliyorsan, lütfen söyle.
Jo Smo

@JoSmo kopyası? Arşiv? Yedekleme?
Braiam

@Braiam teşekkür, şimdi sorduğum için aptal hissediyorum. : D
Jo Smo,

Yanıtlar:


63

Rsync için mükemmel bir görev gibi görünüyor

sudo rsync -az /path_to/A /path_to/B

-a arşiv modu (özyinelemeli, sembolik olarak sembolik kopyaları kopyala, sahibi koru, değişiklik zamanları, grup, sahibi, özel ve cihaz dosyaları)

-z verileri sıkıştırır

A'da silinen dosyaları B'deki dosyalardan kaldırmak istiyorsanız, bu --deleteseçeneği kullanın.

Ek bilgi için bakınız:

https://help.ubuntu.com/community/rsync

Rsync'i cron'dan çalıştırabilirsiniz

sudo crontab -e

Saatlik görevde ekle

@hourly rsync /path_to/A /path_to/B

https://help.ubuntu.com/community/CronHowto


7
Klasörler içinde klasörler varsa, -r seçeneğini kullanmanız gerekir.
John S Gruber

2
Partiye biraz geç kaldım, ancak sabit disk bağlandığında senkronizasyon komut dosyasını çalıştırmak için udev kullanmalısınız. Bir süre önce bu soruya göz atın. askubuntu.com/questions/25071/…
jackweirdy

1
@JohnSGruber -a seçeneği özyinelemeli anlamına gelir, bunu belirtmek için cevabı düzenleyeceğim
Tomas

1
Eğer dosyalar aynı makinedeyse -zişlemi yavaşlatır
Postadelmaga

1
@JoSmo - askubuntu.com/questions/476041/… ve askubuntu.com/questions/609968/… ve man rsync ve gerekirse yorumda bulunmak yerine yeni bir soru sorun.
Panter

15

Rsync'i bu amaç için kullanmanızı öneririm. Rsync, son derece hızlı, kararlı ve çok yönlüdür. Http://help.ubuntu.com/community/rsync adresinde iyi bir giriş var.

İsterseniz, isteğe bağlı bir grafik ön ucu vardır: grsync

 sudo rsync -azv --exclude 'dir1' /home/path/folderA/ /home/path/folderB

Yukarıdaki komut, dizin1 hariç A klasöründen B klasörüne kopyalayacaktır. Bayraklar

-a preserves time stamps
-z is to enable compression
-v verbose

Daha birçok seçenek var.


8

Unison'u her zaman çok faydalı buldum. Metin tabanlı veya GUI tabanlı bir arayüze sahiptir ve istediğinizde ince ayar yapmak için oldukça az sayıda farklı seçenek vardır (biraz karışıklıkla). İlk senkronizasyonu yapmak biraz zaman alır, ancak bundan sonra mükemmeldir. İstediğiniz gibi tek yönlü olarak senkronize edebilirsiniz, ancak bunu hemen hemen otomatik olarak alır. Ayrıca seçtiğiniz yedeklemeden silebilir veya silemez.

Ayrıca, ubuntu dosya biçiminde desteklenen, ancak harici sabit sürücüde bulunmayan izinlerle ilgili sorunlar da bulabilirsiniz (harici sabit sürücünün bir windows makinesinde kullanılıp kullanılmayacağına bağlı olarak, bu iyi bir şey olabilir), bu nedenle Potansiyel olarak izinler olmadan eşitlemek isteyeceksiniz.

Her neyse, güzel olan şey, bu öğretici ile onu bir kez kurmanın nispeten kolay olduğu ve daha sonra ne zaman yapmak istediğiniz bir GUI arayüzü olduğu.

İşte bu konuda bazı bilgiler: http://www.ubuntugeek.com/unison-file-synchronization-tool.html

Ve işte öğretici: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#tutorial


4
rsync -avPr --ignore-existing /home/username/Research/ /path/to/other/folder/on/hdd/

Bu, yalnızca cihazda bulunmayan verileri senkronize eder ve kopyalar. /other/folder/on/hdd/


2

Diğer cevapları kabul ediyorum , Terminal'de rsync veya Grsync , luckyBackup , Conduit veya ünlü Unison arayüzlerinde kullanabilirsiniz .

Bir başka harika uygulama da Krusader (KDE için İkiz Panel Dosya Yöneticisi), Araçlar menüsünde "Dizinleri Eşitle" yi bulabilirsiniz, çok kullanışlıdır.

Geçen durumda yükleyebileceğiniz Wine ve benzeri başka bir büyük ikiz bölmesi dosya yöneticisi yükleyin Total Commander .

Her neyse, birçok seçeneğiniz var ve hepsi Ubuntu Yazılım Merkezinde mevcut.


1

Basit senkronizasyon için Conduit'i tavsiye ederim. Yazılım sistemi mevcut. Tam olarak aradığınızı yapar


0

Yerel ve uzak sistemlerin yedeğini almak için rsnapshot - http://www.rsnapshot.org/ - dosya sistemi anlık görüntü yardımcı programı adında oldukça kullanışlı bir kabuk aracı var . Bu, birden çok, tam dosya sistemi yedeklemesinin anında kullanılabilir kalmasını sağlayan rsync ve sabit bağlantıları kullanır. Sadece yap sudo apt-get install rsnapshotve kontrol etinfo rsnapshot


0

İki direcotries içindeki dosyaları şu şekilde senkronize edebilirsiniz:

rsync -rv /path/to/directory1/ /path/to/directory2

Bunu yapmak rsync -rv /path/to/directory1 /path/to/directory2, directory1içinde directory2böyle yaratır./path/to/directory2/directory1/[files]

-nŞalteri kullanarak çalıştırmayı kurulayabilirsiniz, bunun gibirsync -rnv /path/to/directory1/ /path/to/directory2

Referans: https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.