Як автоматично архівувати каталог?


47

Я хочу зробити одну сторону синхронізації.

Я маю Folder Aна своєму комп’ютері, який постійно оновлюється вмістом.
Інший Folder Bвикористовується для резервного копіювання, який знаходиться на зовнішньому жорсткому диску.

Тепер я очікую, що все те, що є у папці A, має перейти до папки B. Однак те, що є у B, а НЕ у A, "НЕ буде скопійовано в A" ".

У двох словах, папка резервного копіювання може копіювати все з вихідної папки, однак нічого не слід копіювати з резервної папки у джерело.


Це не синхронізація ....
Брайам

@Braiam, як це називається? Я не міг придумати собі такого слова, як ОП. Якщо ви знаєте, скажіть, будь ласка.
Джо Смо

@JoSmo копія? Архів? Резервне копіювання?
Брайам

@Braiam спасибі, зараз я почуваюся дурним за запитання. : D
Джо Смо

Відповіді:


63

Звучить як ідеальне завдання для rsync

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

-режим архіву (має на увазі рекурсивне копіювання символьних посилань як посилань, збереження власника, час модифікації, група, власник, спеціальні файли та пристрої)

-z стискає дані

Якщо ви бажаєте видалити файли, видалені в A, з файлів у B, скористайтеся --deleteопцією

Для отримання додаткової інформації див:

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

Ви можете запустити rsync з cron

sudo crontab -e

Додайте щогодини завдання

@hourly rsync /path_to/A /path_to/B

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


7
Якщо в папках є папки, вам потрібно буде скористатися параметром -r.
Джон С Грубер

2
Я трохи запізнююся на вечірку, але для запуску сценарію синхронізації, коли підключений жорсткий диск, слід використовувати udev. Ознайомтеся з цим питанням деякий час тому. askubuntu.com/questions/25071/…
jackweirdy

1
@JohnSGruber варіант -a передбачає рекурсивний характер, я відредагую відповідь, щоб вказати на це
Томаш,

1
якщо файли на одній машині, -zпросто сповільнюйте процес
Postadelmaga

1
@JoSmo - askubuntu.com/questions/476041/… і askubuntu.com/questions/609968/… та людина rsync і задайте нове запитання, якщо потрібно, а не запитуйте в коментарях.
Пантера

15

Я б запропонував використовувати для цієї мети rsync. Rsync надзвичайно швидкий, стабільний та універсальний. Тут є хороший вступ на веб-сайті http://help.ubuntu.com/community/rsync

За бажанням, є додатковий графічний передній кінець: grsync

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

Команда, наведена вище, скопіює з папки A в папкуB, виключаючи dir1. Прапори є

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

Є ще багато варіантів.


8

Я завжди вважав Юнісон дуже корисним. У ньому є текстовий або GUI-інтерфейс, і досить багато різних варіантів, щоб підлаштувати його до того, що ви хочете (з невеликим вмінням). На першу синхронізацію потрібно зовсім небагато часу, але після цього це геніально. Ви можете змусити синхронізувати його в одну сторону, як вам захочеться, але це значною мірою отримає це автоматично. Також можна видалити з резервної копії чи ні, як ви вибрали.

Ви також можете знайти проблеми з дозволами, які підтримуються у форматі файлу ubuntu, але, можливо, не на зовнішньому жорсткому диску (залежно від того, чи буде зовнішній жорсткий диск використовувати в машині Windows, це може бути хорошою справою), так ви хочете синхронізувати без дозволів потенційно.

У будь-якому випадку, приємно те, що з підручником налаштувати його один раз досить просто, а згодом це інтерфейс GUI, коли ви хочете це зробити.

Ось деяка інформація про це: http://www.ubuntugeek.com/unison-file-synchronization-tool.html

І ось підручник: 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/

Це синхронізує та копіюватиме лише ті дані, які не існують у /other/folder/on/hdd/


2

Я погоджуюся з іншими відповідями, які ви можете використовувати в rsync в терміналі або інтерфейси Grsync , luckyBackup , Conduit або знаменитий Unison .

Ще одне чудове додаток - Krusader (менеджер файлів Twin-Panel для KDE), в меню Інструменти ви можете знайти "Синхронізувати каталоги", що дуже корисно.

В останньому випадку ви можете встановити Wine та встановити ще один чудовий файловий менеджер з двома панелями, наприклад Total Commander .

У будь-якому випадку у вас є маса варіантів, і всі вони присутні у програмному центрі Ubuntu.


1

Я б рекомендував Conduit для простої синхронізації. Доступна програмна система. Це робить саме те, що ви шукаєте


0

Існує досить зручний інструмент оболонки під назвою rsnapshot - http://www.rsnapshot.org/ - утиліта знімків файлової системи для створення резервних копій локальних та віддалених систем. який використовує rsync та жорсткі посилання, що дає змогу миттєво доступними робити декілька повних резервних копій файлової системи. Просто зробіть sudo apt-get install rsnapshotі перевіртеinfo rsnapshot


0

Ви можете синхронізувати файли всередині двох дирекцій:

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

Виконання rsync -rv /path/to/directory1 /path/to/directory2буде створюватися directory1всередині directory2, як це/path/to/directory2/directory1/[files]

Ви можете сушити біг за допомогою -nперемикача, як цеrsync -rnv /path/to/directory1/ /path/to/directory2

Довідка: https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps


0

Якщо ви хочете графічний інтерфейс у висококонфігурованій системі, спробуйте FreeFileSync. Дивіться, наприклад: http://linuxnorth.wordpress.com/2011/11/29/file-and-folder-synchronization/ Зокрема, ви хочете опцію "Оновити" для синхронізації, яка "Копіює нові або оновлені файли в права папка ", тобто копія з лівої папки в праву папку на дисплеї з двома вікнами.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.