Журнал LinuxFormat - перейти на главную

LXF98:Bash

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

Bash: Используем командную строку

Часть 3 Хотите почаще использовать командную строку, но не знаете, с чего начать? Рэйчел Проберт расскажет, как сделать резервную копию с терминала.

Домашний ли вы пользователь компьютера или администратор промышленной сети, объединяющей тысячи пользователей, резервное копирование – ваш последний рубеж обороны перед потерей данных. Терять данные жалко, а компьютеры несовершенны! Да, даже Linux. Наверное, самая частая причина потери данных – это ошибки пользователей, которые случайно удаляют не те файлы или уничтожают важный документ, просто задев не ту клавишу на клавиатуре. От этого не застрахованы даже супер-хакеры. Как же обеспечить постоянное резервирование наших драгоценных данных? Далегко. Создадим резервную копию результатов вашей работы, упакуем в архив и скинем на другой компьютер... И все это из командной строки!

Резервные копии в корне отличаются от архивов: архив – это первичная копия данных, а резервное копирование – это процесс, включающий создание дополнительных копий данных. Данные появляются и изменяются, и резервные копии данных тоже нужно обновлять. Поэтому мы в Linux Format всегда, до полного занудства, твердим нашим читателям, чтобы резервное копирование данных вошло у них в привычку. Уж лучше обезопасить данные, чем страдать от их потери, будь то значимые файлы или файлы с настройками системы.


Часть 1: Архивируем плоды своих трудов

В результате архивирования несколько файлов объединяются в один. Хранить несколько файлов в одном очень удобно: его легко упаковать, скопировать в другой каталог или переслать на другой компьютер или устройство. Мы заархивируем наши файлы и запишем резервную копию на диск с помощью команды tar. Это стандартная команда Linux для архивации данных. Первоначально архивация осуществлялась на ленточные устройства [tape archive], отсюда и название... но мы с ее помощью создадим резервную копию нескольких файлов для записи на дискету. Начнем с того, что разместим все файлы, подлежащие резервному копированию, в одном каталоге. Можно поступить и по-другому: указать полный путь и имя для каждого файла, который вы хотите добавить в архив. Мне кажется, что проще скопировать всё в один каталог, потому что если указать каталог в списке архивируемых файлов, то он будет обработан рекурсивно (с учетом вложенных каталогов). Итак, для создания архива, введите:

tar cvf work.tar /путь/к/каталогу

Сначала мы указали имя программы – tar, за ним идут ключи c (--create), v (--verbose – отображать полный список файлов), f (--file – создать файл; этот ключ всегда должен быть последним). Потом указали имя создаваемого архива (work.tar) и каталог для архивирования (включая путь до него). Как я уже говорила, можно указать имя для каждого файла:

tar -cvf indFiles.tar notes.txt test.txt work.txt

Точно так же можно осмотреть содержимое ранее созданного архива. В этом случае пригодятся следующие ключи: ключ t отобразит список всех файлов архива, а более подробная информация по каждому файлу выводится с помощью ключа v (как ls -l).

tar tf work.tar

Если мы заархивируем результаты нашей работы с помощью tar, не мешает еще и знать, как извлечь их из архива. По умолчанию файл .tar распаковывается в текущий каталог. Мы можем указать другой каталог с помощью ключа -C /директория, например, таким образом:

tar xvf work.tar -C ~/archivedWork

tar-бомбы

Обычно «тар-бомбой» называют архив .tar, файлы которого распаковываются в текущий каталог вместо своего собственного [то есть архив без каталога верхнего уровня, – прим. пер.]. Это может вызывать проблемы, особенно если файлы из архива перезапишут одноименные файлы в текущем каталоге. Ничуть не веселее и удалять все эти новые файлы, затерянные в текущем каталоге среди других файлов. Часто такое происходит в домашнем каталоге пользователя, а там файлов всегда много. Это очень плохой подход со стороны создателя архива, поэтому это слово и носит негативный оттенок.


Часть 2: Сжимаем архив помощь

Полезно сжать несколько файлов в один: тогда они занимают меньше места на диске, и их можно быстрее загрузить из Интернета. Итак, чем же разница между архивом и сжатым файлом?

Архив – это набор файлов и каталогов, которые хранятся в одном файле. Файл архива не сжат – он занимает на диске столько же места, сколько занимают все файлы и каталоги в этом архиве [а на самом деле даже чуть больше, – прим.ред.]. Сжатый файл – это набор файлов и каталогов, которые хранятся в одном файле, причем этот файл занимает на диске меньше места, чем файлы и каталоги внутри его. Если на диске мало места, можно сжать файлы, которые вы используете не очень часто, или файлы, с которыми вы уже не работаете, но которые хотите сохранить. Архив мы уже создали, а сейчас для экономии места на диске сожмем его.

Стандартная утилита для сжатия файлов в Linux называется gzip. Сжатый с ее помощью файл получает расширение .gz. Давайте сожмем полученный ранее файл work.tar с помощью следующей команды:

gzip -v work.tar

Опция -v в этой команде отвечает за подробный [verbose] вывод, с указанием названия каждого файла и процента сжатия. Если мы выполним здесь же команду ls, то увидим, что файл work.tar превратился в work.tar.gz и в самом деле значительно уменьшился по сравнению с несжатым архивом, созданным нами ранее. При необходимости распаковать архив tar можно использовать команду

gunzip work.tar.gz

Содержимое tar-архива предстанет перед вами в былой красе. Существует несколько утилит для сжатия данных; выбор одной из них зависит от ваших предпочтений. Утилита bzip2 более новая, и часто сжатые с ее помощью файлы меньше аналогов, сжатых gzip. Файлы, сжатые bzip2, имеют расширение .bz2 и распаковываются точно так же, как и сжатые gzip, но вместо gunzip используется утилита bunzip2. Есть еще утилиты zip, compress и lzop. Примечание: пользователи Windows как правило не осознают разницы между архивированием и сжатием, т.к. в этой ОС программа-архиватор обычно сразу и создает единый файл, и сжимает его.

Часть 3: Монтируем съемный диск

Прежде чем обращаться к данным на только что подключенном носителе (CD, DVD или дискета), вы должны смонтировать файловую систему этого диска. Непосвященным монтирование может показаться сложной операцией, но оно означает всего лишь присоединение другой файловой системы к дереву каталогов. Аналогично, когда работа с устройством закончена, и вы готовы его удалить, файловую систему нужно размонтировать. Монтированием файловых систем (например, других разделов жесткого диска) часто занимаются системные администраторы (или специалисты по «железу», при установке нового жесткого диска), а обычные пользователи могут монтировать файловые системы для съемных устройств.

Файловые системы для CD, DVD и дискет в Gnome и KDE монтируются автоматически. Так, когда вы работаете в графической оболочке и вставляете диск в привод, файловая система для него автоматически монтируется, и на рабочем столе появляется иконка. Далее, когда работа с диском закончена, вы можете извлечь его с помощью пункта «Извлечь» контекстного меню иконки на рабочем столе или введя команду eject в командной строке.

Общего рецепта нет

Способ монтирования диска из командной строки зависит от системы и ее настроек. Как будет выглядеть ваша команда, проще всего выяснить, посмотрев файл /etc/fstab. Попросту говоря, fstab - это файл конфигурации, содержащий информацию обо всех дисках и устройствах хранения данных вашего компьютера. Это обычный текстовый файл, и его можно редактировать в любом тестовом редакторе, который вы хорошо знаете. Однако для редактирования этого файла нужны привилегии администратора системы. Таким образом, вам придется зайти в систему как root, либо использовать команду su для получения привилегий администратора. Мы не будем редактировать его, а только посмотрим содержимое файла. Введите команду:

gedit /etc/fstab

Посмотрите файл и найдите там строку, соответствующую приводу для гибких дисков. Она должна выглядеть примерно так:

/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

Нас интересуют первый и второй столбцы. Первый содержит название устройства или раздела, второй - точку монтирования. Таким образом команда:

mount /dev/fd0

примонтирует дискету в каталог /media/floppy0, так как это точка монтирования по умолчанию, заданная в /etc/fstab. Смонтировав дискету, мы можем делать с ней все, что захотим: просматривать ее содержимое, или перемещать файлы на дискету и с нее.

ls /media/floppy0

Осталось только скопировать или переместить наш архивированный и сжатый файл на дискету. Если не считать множества ключей, команды mv и cp одинаковы. Единственная разница - cp создает копию набора данных,а mv удаляет исходные файлы. Первый аргумент команды cp определяет файл источник,второй - файл или каталог назначения:

cp work.tar.gz /media/floppy0

Миссия завершена!

Персональные инструменты
купить
подписаться
Яндекс.Метрика