Використання Rsync для резервного копіювання на зовнішній диск


17

Я купую зовнішній жорсткий диск для резервного копіювання комп'ютерів у своєму будинку (нарешті !!). Я сподіваюся використовувати rsync. Я бачив приклад, який робить (або, здається, робить) саме те, що я хочу. Щось на зразок цього:

rsync -aE --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

Однак, дивлячись на документацію rsync та приклади тощо, речі почали виглядати набагато складніше, ніж це. Мережі та демон та жаргон, о, мій!

Я припускаю, що нічого з цього не потрібно, доки я просто rsyncing з комп'ютера на підключений через firewire зовнішній накопичувач. Я помиляюся, вважаючи це? Невже справді буде складніше, ніж ця нешкідлива команда?


Відповіді:


10

Rsync чудово працює на локальних дисках. Однак, якщо він виявляє локальні шляхи, він автоматично переходить у режим -whole-file, який не копіює diff, а просто копіює вихідний файл через файл призначення. Rsync як і раніше буде ігнорувати файли, які взагалі не змінилися. Коли пропускна здатність між джерелом та адресою висока (як два локальні диски), це набагато швидше, ніж читання обох файлів, а потім копіювання лише змінених бітів.


2
s / Однак / на щастя / коли файли локальні, читання обох і виконання всіх магічних труднощів для написання нового з частинами обох (читання їх знову) - це набагато більше роботи, ніж просто читання джерела, написання місця призначення.
Хав'єр

не знав, чи варто мені в цьому відповісти. Додам зараз.
kbyrd

31

Я використовую rsync з такими прапорами, які легко запам'ятовуються як "glop" і "trunc" і "v".

rsync -gloptrunc $srcdir $dstdir

Короткий посібник:

  • g - збереження інформації про право власності на групу
  • l - копіювати посилання як символьні посилання
  • o - збереження інформації про власника
  • p - зберегти дозволи
  • t - збереження міток часу
  • r - повторення через каталоги
  • u - оновлення, пропуск будь-яких нових файлів
  • [n] - ні, не робіть цього, замість цього виконайте сухий пробіг
  • c - контрольна сума, спроба контрольних сум на файлових блоках, коли це можливо (*)
    Примітка: у локальних файлових системах це переосмислюється і замість цього копіюються цілі файли.
  • v - багатослівний

Я завжди виконую вищевикладене, щоб переконатися, що воно працює, а потім видаляю прапор 'n', що колись я задоволений результатами.

Основні характеристики вищевказаних комбінацій:

  • Я запускаю його в BOTH напрямках між двома (або більше) серверами, таким чином синхронізуючи BOTH напрямках. Ви оновлюєте те, що вважаєте господарем на той час.
  • Це дозволяє або бути господарем, із суттєвим застереженням, що якщо ви хочете щось видалити, ви повинні видалити його на обох, щоб бути впевненим, що воно дійсно пішло, інакше воно повернеться.

Я використовую це для синхронізації двох машин або для синхронізації підрозділів (як резервне копіювання на USB-накопичувач).

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

У деяких рідкісних випадках мені доводилося додавати додаткові параметри для обліку змін в облікових записах для входу на віддалених машинах, зміни портів і навіть вказівки, де "rsync" живе на віддаленому хості ..., але вони безпосередньо не застосовуються до вашого питання.


3
Чи не прапор -s на rsync робить усе вищезазначене?
Рорі

2
Я не є великим прихильником використання мета-прапорів, коли я точно не знаю, що вони роблять. Керована сторінка для rsync вказує, що '-a' насправді -rlptgoD у моєму вікні, яке пропускає 'u' та 'v', але включає 'D'. з них, здається, що для мене додавання "u" є єдиною ключовою різницею.
ericslaw

Як змусити його відображати дзеркало від джерела до місця призначення (видаляючи все, що не в джерелі), а не копіювати двосторонньо?
Габріель Степлес

1
Схоже, вам потрібно буде скористатися rsync -gloptrunc --delete --delete-excluded $srcdir $dstdir. --deleteКаже , щоб видалити що - або в пункті призначення, що перебувають у джерелі, і --delete-excludedкаже також видаляти виключені файли в пункті призначення , який би не звичайно гусеничними або скопійований. Якщо ви користуєтесь --delete-excluded, технічно вам також не потрібно використовувати --delete, але все одно нормально використовувати їх обидва. Деталі розміщені на головних сторінках тут: linux.die.net/man/1/rsync .
Габріель Степлес

Примітка. Для загального використання rsync я зараз написав цей підручник і для себе, тому я можу посилатись на нього за потребою: Як користуватися rsync
Габріель

4

Нічого з цього не потрібно, ви можете використовувати rsync без будь-яких демонів або будь-якого іншого типу конфігурації ПРОСТО FINE!

Просто скористайтеся командою rsync, і вам добре піти.


2

Судячи з шляху у вашій команді rsync, я би мав рацію, думаючи, що ви використовуєте Mac OS X?

Особисто я б вирішив використовувати Time Machine (якщо ви використовуєте Leopard) або Carbon Copy Cloner ( http://www.bombich.com/software/ccc.html ), який використовує rsync.

Набагато простіше, ніж намагатися виправити власний сценарій. Однією з переваг є те, що Time Machine і CCC нададуть вам додаткові резервні копії.


2

Приклад, який ви використовували, виглядає, що він буде добре працювати для створення резервних копій.

Одне, що ви можете врахувати при використанні rsync, - це скористатися параметром --link-dest. Це дозволяє зберігати декілька резервних копій, але використовувати жорсткі посилання для будь-яких незмінних файлів, фактично змушуючи всі резервні копії займати простір додатково. Прикладом використання може бути:

rsync -aE --link-dest=/mnt/external_disk/backup_20090612 dir_to_backup \
    /mnt/external_disk/backup_20090613

Це передбачає, що у вас є датоване резервне копіювання на 12 червня, і ви хочете створити нове на 13 червня. Ви можете опустити параметр -v, якщо ви не хочете роздрукувати кожен файл.


1
rsnapshot - це система резервного копіювання, яка використовує link-dest, як ви описуєте, щоб зберегти резервні копії повної версії в просторі.
Рорі

1

Це дійсно залежить від того, ви працюєте з базами даних чи ні. Rsync захопить знімок кожного файлу та ігнорує будь-які записи, що втручаються. Якщо ви хочете створити резервну копію бази даних, слід поглянути на налаштування фільтра ігнорування та запуску інструментів скидання БД перед rsync.


1

Ваша команда, як написано, повинна працювати, однак ви можете переглянути програму під назвою rsnapshot, яка побудована на версії rsync і зберігає кілька версій файлів, щоб ви могли повернутися назад і подивитися на речі, як вони були минулого тижня чи минулого місяця. Конфігурація досить проста, і вона дійсно гарна в оптимізації простору, тому, якщо у вас немає великого розміру, вона не займає набагато більше місця, ніж одна резервна копія.


1

Ви не згадали про свою Операційну систему. Виходячи з припущення, що його * nix на базі ОС, ваша команда хороша.

Однак, якщо один або обидва накопичувачі мають формат NTFS, доступ до якого є * nix або навіть зсередини Windows за допомогою Mobaxterm / cygwin, то додаткова функціональність rsync не буде добре працювати rsync -a (archive flag)

Якщо приєднуються / залучаються диски NTFS, ви можете використовувати:

rsync -rvh --size-only --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

Завантажте Mobaxterm ssh-клієнт, щоб мати функціонал rsync у Windows.

Ось додаткова інформація про використання rsync з NTFS-накопичувачами


0

Я спробував використовувати rsync для резервного копіювання, але в результаті це стало безладом. rsync краще підходить для "синхронізації", а не для резервного копіювання. І це повсякчас іде для порівняння великих файлів.

Я трохи дослідив і спробував декілька (в основному тестував усіх із резервної копії пошуку apt-кешу в ubuntu).

Нарешті я закінчив " backup2l - інструмент резервного копіювання / відновлення з низьким обслуговуванням", це легко. Мені подобається, як воно управляє плануванням та ротацією (в рівнях). Я запускаю його всякий раз, коли в командному рядку приєднано зовнішній накопичувач USB, але ви також можете його автоматизувати.


0

Спробуйте дірвіш зробити резервну копію. http://www.dirvish.org/
Він використовує жорсткі посилання від rsync у так званих сховищах. Ви можете зберегти стільки ж старих смітників, скільки і USB-диск. Або встановити його автоматизованим способом.

Як тільки ви зрозумієте ідею дирвішу, це зручніше використовувати, ніж rsync з усіма його можливостями.


rsnapshot схожий на dirvish
Rory

0

Я знаходжу рішення для комп'ютера на базі Windows: http://www.itefix.no/i2/node/10650

Скопіювати розділ D: \ на зовнішній диск K: \

rsync -aE --delete --progress /cygdrive/d/* /cygdrive/k

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