Ми хочемо зробити резервну копію всього на нашому сервері Debian, який працює віддалено в інший бік світу (розміщений Linode), не вимикаючи його.
Ця система працює з оболонкою, електронною поштою, XMPP / prosody та веб, з парою простих налаштувань nginx.
Ми хочемо створити резервні копії файлів, пов’язаних із цими речами, лише для того, щоб бути безпечними. Наприклад, користувачі файлів зберігаються у своїх домашніх каталогах.
Нам не потрібно точно копіювати існуючий wrt для установки кожного файлу / etc; замість цього, в першу чергу ми навіть робимо резервну копію, тому ми можемо перенести все це на нове налаштування (новіша версія Debian, яка все ще знаходиться на Linode).
Я бачу, що Linode пропонує послугу резервного копіювання. Але в довгостроковій перспективі нам також потрібні власні резервні копії, на випадок, якщо вони підпадають під дію або трапляється щось інше дивне.
Причина цього питання полягає в тому, що коли я намагався робити резервні копії в минулому, я продовжував робити одну з цих двох помилок:
- Я пішов "Гаразд, я просто скопіюю
/
і все під ним", а потім застряг у якомусь дивному нескінченному циклі або через диск, який я копіював, був встановлений під / media / backup, і він копіював себе рекурсивно [obv ця конкретна проблема тут не застосовується, оскільки ми збираємося робити резервну копію через rsync або подібне], або вона застрягла, намагаючись скопіювати якісь "живі" речі в / proc або / var чи що завгодно, як, наприклад, намагаючись не відставати від постійно змінюваних журналів, або - Я пішов "Гаразд, я просто захоплю мінімум того, що нам потрібно ... Хм, всі домашні каталоги та наші каталоги веб-сервера (все під
/var
), і давайте обробимо копію/etc
та всі старі листи під / var / vmail ", і тоді я незмінно трахав дозволи на файли або часові позначки (буду впевнений, що цього разу не створю резервну копію файлів Unix на FAT-диску) або щось забув (" о, стріляй, у мене були деякі спеціальні сценарії в / usr / локальний / бін, який я ніде не зберігав, я забув їх отримати, напевно, їх зараз немає ").
Таким чином, звичайне копіювання всього диска прямо вгору призвело до підводних каменів, а копіювання каталогів вибірково призвело до підводних каменів. Я хочу знати, як це зробити правильно.
Питання про помилку сервера Що потрібно для повної системи резервного копіювання? стосується філософії та передової практики, але я шукаю ці більш конкретні деталі:
- Які каталоги мені потрібно скопіювати, а які я виключати (враховуючи, що це система, яка наразі працює та обслуговує вікі, чат XMPP, електронну пошту - з новими повідомленнями, що надходять під час виконання завдання копіювання)
- Які атрибути файлів, такі як часові позначки та власник та група, потрібно подати, і як це зробити? ← Я думаю, що можу відповісти на цю половину запитання самостійно чимось на кшталт ... гм ...
rsync -HXaz
я думаю, що це хороший варіант для нас? Об’єкт-z
не дуже пов'язаний з питанням, що "що я зберігаю"
Багато порад щодо резервного копіювання, які я бачу, як, наприклад, використання dd
, здається, припускають, що накопичувач відключений і не використовується. Але я не повинен виключати "живих" каталогів, таких як / proc та деякі підкаталоги під / var (однак, деякі речі під / var, які я знаю, ми, безумовно , потрібно зберігати) та / mount? Що ще є над тим, що мені потрібно думати у цій ситуації? Тоді я здогадуюсь, що я можу просто зняти це за допомогою rsync та використати купу --exclude
прапорів.
Або є кращі ідеї, особливо дружні до FOSS?
cp -r -a
збереже якомога більше атрибутів файлів при копіюванні файлів (виходячи з того, що підтримує цільова файлова система). -a
Прапор наказує cp
зберігати атрибути. Копіювання через мережу або через файлову систему, яка не підтримує необхідні атрибути, tar -c
завжди працювала для мене, хоча, я вважаю, є деякі крайні випадки, які вона не охоплює, і, зокрема, я вважаю tar
, що за замовчуванням залежить від відповідності імен користувачів на обидві системи. При цьому я скопіював всю (відключену) систему Linux, використовуючи tar
без явних проблем.