Создание высокопроизводительного вычислительного кластера на Linux

Автор работы: Пользователь скрыл имя, 28 Января 2014 в 18:04, лабораторная работа

Краткое описание

Все объекты в UNIX делятся на два типа: файлы и процессы.
Все данные хранятся в файлах, доступ к периферийным устройствам осуществляется через специальные файлы.
Вся функциональность операционной системы определяется выполнением различных процессов.
Важнейшим пользовательским процессом является основной командный интерпретатор (login shell). login, password

Прикрепленные файлы: 1 файл

LINUX.doc

— 173.50 Кб (Скачать документ)

Если вы работаете с файлами архивов на дисках, а не с ленточным устройством, то, очевидно, обязательной будет и опция f. Другие опции не являются обязательными, они служат только для конкретизации задания программе. Например, опция v заставляет программу выводить список обрабатываемых файлов.

Однобуквенные опции программы tar могут перечисляться друг за другом (вы увидите это в приводимых ниже примерах).

Я не буду давать здесь описание всех опций команды tar, просто приведу несколько командных строк для выполнения самых необходимых действий с архивами.

Чтобы создать один tar-архив из нескольких файлов, используется команда:

[user]$ tar -cf имя_архива  файл1 файл2 ...,

где опция -c сообщает программе, что необходимо создать (create) архив, а опция f говорит о том, что архив должен создаваться в виде файла (имя которого должно следовать сразу за этой опцией).

В именах файлов, которые сохраняются  в архиве, можно использовать шаблоны  имен файлов, в том числе просто символы-заместители * и ?. Благодаря  этому можно очень короткой командой отправить в архив сразу много файлов. Например, для того, чтобы создать архив, содержащий все файлы одного из подкаталогов (пусть это будет sub_dir) текущего каталога, достаточно дать команду

[user]$ tar -cvf имя_архива ./sub_dir/*

или даже просто

[user]$ tar -cvf имя_архива sub_dir

По этой команде в архиве будут  сохранены не только файлы, расположенные  непосредственно в подкаталоге sub_dir, но и рекурсивно все файлы из подкаталогов каталога sub_dir. При этом в архиве сохраняется вся структура подкаталогов каталога sub_dir.

Заметим, что если в только что  приведенном примере вместо * поставить *.*, то будут сохранены только те файлы, которые расположены непосредственно в подкаталоге sub_dir, а подкаталоги каталога sub_dir архивированы не будут. Если в том же примере не указать имя подкаталога, то будут архивироваться все файлы (и подкаталоги) текущего каталога. Но если вы дадите команду следующего вида

[user]$ tar -cvf имя_архива ./.*

то в архиве будут сохранены  не только все файлы (и подкаталоги) текущего каталога, но и файлы из родительского каталога, а хотели ли вы этого?

Теперь вы знаете как создать  архив, а для того, чтобы распаковать (извлечь) файлы из архива, нужно  дать команду:

[user]$ tar -xvf имя_архива  файлы

Получить список файлов архива можно  командой:

[user]$ tar -tf имя_архива | less

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

[user]$ tar -Mcvf /dev/fd0H1440 /каталог

Такая команда создаст на дискетах архив с содержимым каталога, разбивая его на тома. Монтировать дискеты  перед запуском команды не нужно, программа просто пишет на устройство потоком (в данном случае на дискету по секторам). При этом никакой файловой системы на дискете не создается. После заполнения дискеты вам будет выдан запрос на смену дискеты. Только, прежде чем запускать такую команду на выполнение, приготовьте достаточное число свободных дискет (помните, что tar не сжимает файлы), которые лучше всего соответствующим образом пометить и обязательно пронумеровать. Кроме того, имейте в виду, что вся информация на дискетах будет молча уничтожена.

Чтобы восстановить сохраненные данные, воспользуйтесь командой:

[user]$ tar -Mxpvf /dev/fd0H1440

Если вы ошибетесь в порядке  вставляемых дискет, программы сообщит  вам об этом и попросит заменить том.

В заключение раздела заметим, что  всегда можно получить подсказку  по использованию программы tar, дав команду

[user]$ tar -help

При этом, если вы используете русифицированный дистрибутив Linux, например, Black Cat 6.02, то подсказка будет выдаваться по-русски.

Программа gzip

Хотя программа tar создает архивы, она, как было сказано, не сжимает архивы, а просто соединяет отдельные файлы в единый архивный файл. Для сжатия этого файла часто применяют команду gzip. В простейшем случае она вызывается в следующем формате:

[user]$ gzip файл

В командной строке можно указать  сразу несколько имен файлов или  шаблон имени файла. Но в этом случае каждый из указанных файлов будет заархивирован отдельно (общий архив не создается).

Для того, чтобы распаковать архив, используйте команду

[user]$ gzip -d файл_архива

или

[user]$ gunzip файл_архива

Исходные файлы после сжатия удаляются, остается только архивный файл (файлы перемещаются в архив), а при разархивации удаляется архив.

Перечислим кратко другие полезные опции программы gzip.

Таблица 4.6. Основные опции программы gzip

Опция

Значение

-h, --help

Вызов краткой  помощи по использованию программы

-l, --list

Выдает имя  файла, содержащегося в архиве, его  объем и степень сжатия

-L, --license

Отображает  номер версии и лицензию на программу

-N, --name

Сохранять (или  восстанавливать) исходное имя и  время создания файла

-n, --no-name

Не сохранять (не восстанавливать) исходное имя и время создания файла

-q, --quiet

Подавляет выдачу на экран предупреждающих сообщений

-r, --recursive

Рекурсивно  обрабатывать подкаталоги (используется в случае. когда задан шаблон имен обрабатываемых файлов)

-S .suf,--suffix .suf

Добавить суффикс .suf к имени сжатого файла (вместо добавляемого по умолчанию суффикса gz; но учтите, что при разархивации файлов с суффиксами, отличными от gz, программа вас не поймет)

-t, --test

Протестировать  архивный файл

-v, --verbose

Выдача дополнительных сообщений в процессе работы программы

-V, --version

Отобразить  версию программы

-1, --fast

Быстрое сжатие

-9, --best

Более высокая  степень сжатия


Поскольку программа gzip не умеет сохранять в одном архиве несколько файлов, то обычно ее применяют для сжатия архивов, созданных программой tar. Более того, среди опций программы tar имеется специальная опция -z, позволяющая сразу после создания сжать его с помощью программы gzip. Для выполнения такого сжатия надо использовать команду tar примерно следующим образом:

[user]$ tar -czf имя_архива  шаблон_имен_файлов (или имя_каталога)

Только имейте в виду, что в  этом случае суффикс .gz не добавляется автоматически к имени создаваемого архива, поэтому лучше сразу задать имя архива с указанием обеих суффиксов: имя.tar.gz.

Программа bzip2

В последнее время все чаще вместо программы gzip используется архиватор bzip2, который обеспечивает более высокую степень сжатия и работает несколько быстрее. Команда bzip2 обычно не устанавливается автоматически при инсталляции Linux. Но она имеется на дистрибутивном диске в виде rpm-пакета и ее легко установить.

Работает bzip2 примерно так же, как команда gzip, т. е. замещает каждый файл, имя которого задано в командной строке, сжатой версией, добавляя к имени файла суффикс .bz2.

Сжатый файл имеет то же самое  время модификации, права доступа  и, по возможности, того же владельца, что  и исходный файл, что дает возможность  восстановить эти атрибуты при извлечении файлов из архива.

В некоторых случаях сжатый файл может оказаться даже больше по размеру, чем исходный. Это происходит, например, для файлов длиной менее 100 байт, потому что механизм сжатия использует заголовок длиной около 50 байт. Для файлов, представляющих собой случайную последовательность символов (в том числе для выходных файлов большинства файловых архиваторов) длина файла увеличивается примерно на 0.5%.

Команда bunzip2 (или bzip2 -d) разархивирует указанные в командной строке файлы. Если эти файлы не были созданы программой bzip2, они не будут разархивироваться, будет выдано соответствующее предупреждение. При разархивации bzip2 пытается угадать имя разархивируемого файла по следующим правилам:

  • filename.bz2 заменяется на filename;
  • filename.bz заменяется на filename;
  • filename.tbz2 заменяется на filename.tar;
  • filename.tbz заменяется на filename.tar;
  • любое другое "имя" заменяется на "имя.out".

Опции командной строки для bzip2 очень похожи на опции команды gzip, но все же они не идентичны. Приведу краткую сводку наиболее необходимых в работе опций.

Таблица 4.7. Основные опции программы bzip2

Опция

Значение

-d, --decompress

Принудительная  разархивация. Эта опция необходима в силу того, что bzip2, bunzip2 и bzcat - это на самом деле одна и та же программа, которая сама по расширению имени файла принимает решение о том, какое действие надо выполнить над указанным файлом. Опция -d отключает этот механизм и заставляет программу разархивировать указанные файлы

-z, --compress

Принудительная  архивация

-t, --test

Проверка целостности  указанного файла(ов) без разархивации

-f, --force

Перезапись  существующего файла. По умолчанию bzip2 не перезаписывает существующие файлы. Если вы хотите перезаписать существующий файл, надо задать опцию -f

-k, --keep

Сохранять (не удалять) исходные файлы при архивации  или разархивации

-s, --small

Снижает требования к объему используемой оперативной  памяти за счет снижения скорости архивации. Эту опцию рекомендуется применять  на компьютерах с малым объемом  ОЗУ (8 Мбайт и меньше)

-q, --quiet

Не выводить малосущественные сообщения

-v, --verbose

Выводить дополнительную информацию в процессе работе (представляет интерес в диагностических целях)

-L, --license,

-V, --version

Отобразить  версию программы и лицензионное соглашение


Аргументы командной строки, которым  предшествует двойное тире и пробел, трактуются как имена файлов, даже если они начинаются с тире. Например,

[user]$ bzip2 -- -myfilename


Информация о работе Создание высокопроизводительного вычислительного кластера на Linux