Копіювання файлів Linux
Вінчестери не вічні, ноутбуки іноді крадуть, а якщо ненароком виконати команду rm-rf, то шкода також може завдати великої шкоди. З цих та інших причин вам не обійтися без регулярного резервного копіювання всієї персональної інформації. У цьому розділі до вашої уваги пропонується цілий спектр команд і програм, які в різній формі допомагають архівувати файли та запобігати втраті інформації.
Стиснення та архівування файлів
У Windows для стиснення одного або декількох файлів зазвичай використовується архіватор WinZIP або сумісна з ним програма. У Linux також є подібні інтерфейси користувача: наприклад file-roller (Gnome) або ark (KDE). У цьому розділі буде показано деякі альтернативи, які дозволяють архівувати файли за допомогою спеціальних команд.
Інструменти для стиснення та архівування файлів
gzip - Архів файлу gunzip - Витягує файл з архіву
bzip2 - Архівує файл (сильне, але повільніше стиснення)
bunzip2 — Витягує файл із архіву bzip2
tar — Створення або видалення файлового архіву
zip — Створює сумісний із Windows ZIP-архів
unzip — Витягує ZIP-архів
zipinfo — Вказує інформацію щодо певного ZIP-архіву
Команди gzip та gunzip
… 178794 1. Aug 17:43 filesystem.tex
user$ gzip filesystem.tex
user$ ls -l filesystem.tex.gz
… 57937 1. Aug 17:43 filesystem.tex.gz
user$ gunzip filesystem.tex.gz
Команди bzip2 та bunzip2
Це команди, які альтернативні gzip/gunzip. Гідність цих команд полягає в сильнішій архівації, але вони трохи повільніше працюють. Заархівовані файли мають розширення .bz2.
… 47105 1. Aug 17:43 filesystem.tex.bz2 user$ bunzip2filesystem.tex.bz2
Команда tar
Наступна команда поміщає всі файли з каталогу buch у стислий архівний файл buch.tgz. Коротко розповім про літерні назви параметрів: з означає
«створити» (create), тобто таким чином tar створює архів означає zip, тобто архів повинен створюватися за допомогою gzip; f означає "файл" (file), тобто tar має створити файл архіву (а не записувати архів на касету стрімера). Крім цього параметра вказується ім'я файлу. Зазвичай такі файли мають розширення .tar.gz або коротко .tgz.
user$ tar -czf meinarchiv.tgz buch/
Команда tar -xzf розпаковує архів і витягує файли, що містяться в ньому:
У наступному прикладі tar витягує з архіву лише ТЕХ-файли. Зверніть увагу на апостроф поруч із схемою файлу, що запобігає миттєвому обробленню таких файлів оболонкою.
Якщо потрібно створити архів за допомогою bzip2, а не за допомогою gzip, змініть параметр z на j.
Команда zip
У світі UNIX/Linux файли TAR — це домінуючий формат передачі файлових архівів. Однак якщо ви працюєте з користувачами Windows, то ZIP-архів - це оптимальний вибір. Наступна команда містить всі HTML-файли, передані у вигляді параметрів, в архів myarchive.zip. user$ zip meinarchiv.zip *.html
Якщо ви бажаєте заархівувати вміст цілих каталогів, вкажіть параметр -r:
Archive: test.zip 143677915 bytes 1899 files
-rw-r--r-- 2.3 unx 78039 tx defN 10-Jul-06 11:27 linux8/lanserver.tex -rw-r--r-- 2.3 unx 115618 tx defN 7-Apr-05 15:58 linux8/lanserver.tex /security.tex
-rw-r--r-- 2.3 unx 3899 tx defN 28-Jul-06 16:38 linux8/buch.tex -rw-r--r-- 2.3 unx 752 tx defN ll-Feb-04 12:06 Iinux87u .txt-
Для отримання архіву використовуйте такі команди:
Синхронізація каталогів
Команда rsync спочатку розроблялася для синхронізації мережевих каталогів. Спеціальні можливості використання цієї команди під час роботи з мережами перераховані у підрозділі «RSYNC». Тут ми поговоримо лише про те, як синхронізувати два локальні жорсткі диски.
Наступна команда копіює файли BceJPG з одного каталогу до іншого. На відміну від роботи з командою cp, файли, які вже були в системі при останньому копіюванні і не змінилися з тих пір, знову не копіюються. Якщо ви робите невелику резервну копію, це можна знехтувати, але при синхронізації гігантських систем каталогів розміром у багато гігабайтів різниця більш ніж істотна!
Щоб синхронізувати цілий каталог разом з усіма його підкаталогами, використовуйте параметр -a, який є скороченим варіантом цілого ряду інших параметрів (-rlptgoD). Параметр викликає рекурсивну обробку всіх підкаталогів і гарантує, що інформація (власник, належність до певної групи, час останньої зміни тощо) збережеться максимально повному обсязі. Якщо каталог2 немає, цей каталог створюється.
За промовчанням rsync копіює або оновлює нові або змінені файли, але нічого не видаляє. Якщо ви хочете, щоб файли, видалені з каталог1, також були видалені з каталог2, додатково вкажіть параметр -delete. Зрозуміло, що цей параметр небезпечний: якщо випадково видалити каталог, то саме він видаляється при наступній операції резервного копіювання і з другого жорсткого диска! Однак у довгостроковій перспективі вам без -delete не обійтися. Якщо цим параметром не скористатися, згодом накопичиться маса вже непотрібної інформації.
Якщо ви бажаєте забезпечити надійну подачу даних про те, які файлибуло змінено і скільки файлів (з якою швидкістю і куди саме) було перенесено, додатково вкажіть параметр v.
Автоматизація роботи Rsync. Щоб не вводити команду rsync багаторазово, краще запакувати її в невеликий сценарій командного процесора. Тоді ви гарантовано зможете уникнути помилок.
mount /backup # Прив'язка резервного каталогу NFS до файлової системи rsync -av --delete /folderl/* /backup/rechnerX/folderl/ rsync -av --delete /folder2/* /backup/rechnerX/folder2/
Виконання резервного копіювання
Найпростіше застосовувати rdiff-backup із двома локальними каталогами. Якщо цільової каталог ще немає, він створюється.
Доступ до резервних копій
Якщо ви хочете звернутися до старої версії файлу або до недавно віддаленого файлу, справа складніше: потрібно по порядку відновити всі DIFF-файли (починаючи з найновішого), поки ви не отримаєте ту (минулу) версію, яка вам потрібна.
Звичайно, це необов'язково робити вручну – для цієї мети існує команда rdiff-backup. Наступна команда відновлює каталог /home у такому вигляді, в якому він був десять днів тому:
Момент резервного копіювання на ваш вибір можна задавати або в абсолютному вигляді (наприклад, 2009-12-31), або у відносному (у годинах (h), днях (D), тижнях (W) тощо) . Зверніть увагу, що при відновленні старих файлів зі зростанням кількості версій збільшується навантаження на процесор, відповідно робота системи уповільнюється!
Найчастіше вам може знадобитися відновити стару версію лише одного файлу або підкаталогу. При цьому можна вказати неіснуючий файл або віддалений каталог.
root# rdiff-backup-r 10D /home-backup/file file-historisch root# rdiff-backup -r 10D /home-backup/folder/folder-historisch
Видалення всіх резервних копій. Якщо ви регулярно користуєтесь командою rdiff-backup, то каталог із резервними копіями згодом серйозно розростається. Щоб видалити всі резервні копії, створені понад чотири місяці тому, зробіть так:
Замість конкретного тимчасового пункту ви можете вказати, скільки часу повинні зберігатися заархівовані резервні версії. Наступна команда зменшує кількість резервних версій до трьох (незалежно від того, наскільки давно вони були створені):
Мережеве резервування
У всіх попередніх прикладах ми виходили з того, що вихідні та кінцеві каталоги знаходяться у файловій системі локального комп'ютера. Однак команда rdiff-backup може звертатися через мережу та до віддалених каталогів. На відміну від випадку роботи з rsync, команда rdiff-backup має бути встановлена на віддаленому комп'ютері! Передача даних здійснюється через SSH. Спеціальної конфігурації rdiff-backup не потрібно. При вказівці зовнішніх каталогів застосовується такий самий синтаксис, як під час роботи з rsync. Єдина відмінність полягає в тому, що після імені хоста необхідно поставити дві двокрапки:
Програма Duplicity
Якщо вам, в принципі, подобається ідея команди rdiff-backup, але також потрібно закодувати резервну копію та забезпечити завантаження інформації через SSH або
FTP на зовнішній сервер, зверніть увагу на програму Duplicity, записану мовою Python. Функціонально вона нагадує rdiff-backup, але створює лише архіви у форматі TAR. На даний момент програма проходить бета-тестування та активно розробляється.
Інтерфейси користувача для резервного копіювання
Компанія Apple своєю програмою Time Machine довела, що навіть додаток длярезервного копіювання може викликати захоплення користувача. Linux, на жаль, не може скласти Apple конкуренцію в цьому відношенні: хоча вибір команд та інструментів для резервного копіювання і неоглядний, користувачі персональних комп'ютерів все ще чекають появи геніального та простого інструменту. У Gnome та KDE програма резервного копіювання за замовчуванням взагалі відсутня. Це тим більше разюче, тому що існує кілька винятково цікавих та простих у використанні додатків.
В даний час ведеться активна розробка всіх трьох програм. Однак ситуація може швидко змінитися: саме серед програм, призначених для резервного копіювання, є безліч покинутих проектів, які не оновлюються роками. Намагайтеся не користуватися «острівними» рішеннями та за необхідності своєчасно змінюйте свій інструмент для резервного копіювання!
Насправді Grsync не є програмою резервного копіювання в повному розумінні цього слова. Це всього лише дуже простий інтерфейс для роботи з командою rsync. Після встановлення ви зв'язуєте з комп'ютером зовнішній жорсткий диск або USB-флешку, запускаєте Grsync і копіюєте вміст домашнього каталогу в каталог на зовнішньому жорсткому диску. При першому запуску слід скопіювати всі файли, в ході наступних запусків лише змінені або нові файли.
Багато параметрів, по суті, можна залишити в такому вигляді, як вони налаштовані за замовчуванням. Однак про два параметри слід розповісти докладніше. Про Прапорець Видалити в цільовому каталозі визначає, чи має програма Grsync синхронізувати процеси видалення. Якщо після першого резервного копіювання ви видалите файл у вашому домашньому каталозі, цей файл при наступному прогоні буде видалений і врезервному каталозі. Якщо необхідно захистити резервний каталог від ненавмисного видалення, цей прапорець можна не встановлювати (таке налаштування також зроблено за замовчуванням). Його необхідно встановити
лише в тому випадку, коли вміст вашого каталогу і його резервного каталогу, що страхує його, повинні повністю збігатися. Про Встановлення прапорця Не залишати файлову систему означає, що Grsync синхронізуватиме лише ті файли, які знаходяться у файловій системі вихідного каталогу. Зазвичай варто встановлювати цей прапорець. Основними перевагами Grsync є простота використання і той факт, що ваші файли будуть копіюватися в резервний каталог «один до одного». Крім того, для звернення до резервної копії не потрібні спеціальні інструменти.
PyBackPack
Програма призначена для того, щоб зберігати резервну копію домашнього каталогу на CD або DVD у будь-якому каталозі (наприклад, на зовнішньому диску) або сервері, доступ до якого забезпечується через SSH. Інтерфейс цієї програми існує лише англійською мовою, складається з трьох вкладок. Якщо ви хочете просто робити резервні копії домашнього каталогу і зберігати їх на CD або DVD, виберіть на вкладці Ноте варіант Go.
На фоні виконання програми PyBackPack виконується відома вам команда rdiff-backup. Однак у PyBackPack не передбачена можливість видалення застарілих резервних копій, тому при кожному наступному резервному копіюванні на цей каталог потребує дедалі більше місця. Найпростіший спосіб впоратися з цією проблемою — створювати при кожному резервному копіюванні новий каталог, а видалити старий.
Кнопка Відновити дозволяє повністю відновити резервну копію. При цьому можна задати потрібну версію резервної копії та вказати, куди має бутископійовано резервні файли. Якщо ви бажаєте відновити лише один файл або каталог, клацніть на ньому правою кнопкою миші в менеджері Nautilus і виконайте команду контекстного меню Відновити стару версію. У перспективі DejaDup має стати стандартною програмою для резервного копіювання в Ubuntu. Робота програми заснована на створеному мовою Python сценарії резервного копіювання Duplicity. Недолік полягає в тому, що файли резервних копій створюються в дуже специфічному форматі, тому відновлювати їх можна тільки за допомогою програми DejaDup або сценарію Duplicity.Читайте так: Пошук файлу linux