Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 800521

.pdf
Скачиваний:
3
Добавлен:
01.05.2022
Размер:
4.21 Mб
Скачать

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

Пожалуйста, посмотрите руководство по настройке SSHключей для доступа к Вашему серверу, если Вы еще этого не делали.

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

ssh username@remote_hostname_or_IP

Если все работает, выйдите обратно при помощи команды:

exit

Мы можем установить SSH-соединение и затем открыть SFTP-сессию через это соединение с помощью следующей команды:

sftp username@remote_hostname_or_IP

Вы подключитесь к удаленной системе и подсказка командной строки изменится на соответствующую для SFTP.

Получение справки в SFTP

Самой полезной командой, которую стоит выучить первой, является команда help (помощь, справка). С её помощью Вы получите доступ к краткой справочной информации по SFTP. Вы можете вызвать её, используя любую из следующих команд:

help ?

В результате на экране будет отображён список доступных команд:

Available commands:

bye

Quit sftp

cd path

Change remote directory to 'path'

chgrp grp path

Change group of file 'path' to 'grp'

chmod mode path

Change permissions of file 'path' to 'mode'

chown own path

Change owner of file 'path' to 'own'

141

Display statistics for current directory or filesystem containing 'path'
Quit sftp Download file
Display this help text
Change local directory to 'path'

df [-hi] [path]

exit

get [-Ppr] remote [local] help

lcd path

. . .

wget — консольная утилита для скачивания файлов/сайтов, умеет выкачивать файлы рекурсивно, следуя по ссылкам автоматически.

curl — консольная утилита для передачи данных используя URL-синтаксис, поддерживаются протоколы DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet и TFTP.

Параметры curl

 

 

 

 

 

Таблица 10.3

curl http://proft.me

 

получаем содержания главной

 

 

 

 

страницы

 

 

 

 

 

 

 

получаем содержания главной

curl -o index.html http://proft.me

страницы в файл index.html

 

 

 

 

 

при получении содержимого

curl -L http://example.com

страницы

следовать

по

 

 

 

 

редиректам (если такие есть)

curl

-u

username:password

получение страницы скрытой

http://example.com/login/

 

за Basic HTTP Authentication

curl

-x

proxy.com:3128

получение

страницы

http://proft.me

 

 

используя прокси

 

 

curl -I proft.me

 

получаем http-заголовки с

 

 

 

 

сайта

 

 

 

curl -H 'Host: google.ru'

подменить

домен

при

http://proft.me

 

 

обращении

к

серверу

 

 

 

 

(передача своего заголовка)

 

curl

--request

POST

передача

данных

POST-

"http://example.com/form/"

--data

запросом

 

 

 

"field1=value1&field2=value2"

 

 

 

 

142

Окончание табл. 10.3

curl

-X

POST

передача

данных

POST-

"http://example.com/form/"

--data

запросом

 

 

"field1=value1&field2=value2"

 

 

 

curl

--request

PUT

передача

данных

PUT-

"http://example.com/api/movie/1/"

запросом

 

 

--data "title=DjangoUnchained"

 

 

 

curl

 

-F

загрузка

файла file.zip в

uploadfiled=@file.zip

-F

форму (multipart/form-data)

submit=OK

 

 

 

 

http://example.com/upload/

 

 

 

 

curl -u username:password -

скачать файл с FTP

O ftp://example.com/file.zip

 

 

 

 

curl -u username:password -

закачать файл по FTP

T file.zip ftp://example.com/

 

 

 

curl

--cookie "login=proft"

установить кукис

http://example.com/login/

 

 

 

 

DRBD (Distributed Replicated Block Device

распределённое реплицируемое блочное устройство) — это блочное устройство, предназначенное для построения отказоустойчивых кластерных систем на операционной системе Linux. DRBD занимается полным отражением (mirroring) по сети всех операций с блочным устройством. Можно считать, что DRBD это сетевой RAID-1.

DRBD берёт данные, записывает их на локальный диск и пересылает на другой хост. На другом хосте они тоже записываются на диск.

Помимо DRBD в кластере должно быть ещё два важных компонента:

cluster membership service (в качестве которого чаще всего выступает heartbeat);

приложение, работающее поверх распределённого блочного устройства.

143

Примеры приложений: Файловая система c fsck;

Журналируемая файловая система; СУБД;

домен Xen.

DRBD работает как модуль ядра Linux. В других операционных системах DRBD использоваться не может. В качестве альтернативы DRBD для OpenSolaris можно рассмотреть Sun StorageTek Availability Suite (сокращённо AVS) , а в FreeBSD - HAST.

Как работает DRBD?

Каждое DRBD-устройство (а DRBD-устройств одновременно может быть много) находится в одном из двух состояний:

1)primary — первичном;

2)secondary — вторичном.

На узле, на котором DRBD-устройство находится в первичном состоянии, операционная система или процессы могут работать с ним (устройство доступно через файл /dev/drbdX).

Каждое обращение на запись к DRBD-устройству отправляется локально к нижележащему устройству и на узел, на котором находится реплика устройства, работающая во вторичном состоянии. Вторичное устройство, получившее запрос, выполняет запись. Чтение выполняется всегда только локально.

RBD и кластерные файловые системы

Обычно DRBD-устройство работает на одном из узлов в режиме первичного (primary role), а на втором — в режиме вторичного или резервного (secondary role). Запись идёт на устройство, которое находится в режиме главного, а на второе (остальные в случае с DRBD9) просто выполняется репликация. Такой режим применим для классических отказоустойчивых кластеров, его следует использовать, если

144

на DRBD-устройстве непосредственно находятся традиционные, не кластерные файловые системы (ext3, XFS, JFS и т.д.).

Начиная с DRBD-8.0.08 можно заставить работать оба узла в режиме primary. Это даёт возможность монтировать кластерную ФС сразу на двух узлах одновременно. Примеры таких кластерных файловых систем:

GFS; OCFS2.

Кроме того, эта возможность DRBD позволяет выполнять живую миграцию доменов Xen, которые используют эти устройства. В этом случае использование кластерных систем в домене Xen не является обязательным, можно обойтись традиционными системами, такими как ext3, XFS, JFS.

Oracle Cluster Filesystem 2 (OCFS2) — файловая система,

предназначенная для совместного использования двумя или более Linux-системами, одновременно работающими с одним и тем же разделяемым хранилищем (shared storage). Обладает высокой производительностью и надёжностью. Разрабатывается компанией Oracle. Является свободным программным обеспечением. Входит в состав ядра Linux,

начиная с 2.6.16 (март 2006).

Файловая система обладает семантикой локальной файловой системы и не требует никакой специальной модификации программного обеспечения, использующего её.

В настоящий момент файловая система OCFS2 используется в продукте компании Oracle — Real Application Cluster. Кроме этого, её часто применяют при построении масштабируемых Web-серверов, файловых, почтовых систем, а также для хранения образов виртуальных машин.

Файловая система работает поверх разделяемого хранилища, доступ к которому может осуществляться при помощи таких протоколов как iSCSI, AoE или DRBD.

Возможности файловой системы OCFS2 Блоки переменного размера;

145

Гибкое выделение пространства (экстенты, разреженные файлы (с 2.6.22), незаписанные экстенты с возможностью создания дырок);

Журналирование (поддерживаются режимы ordered и writeback);

В системах различных аппаратных платформ работает одинаково (x86, x86_64, ia64 и ppc64);

Поддержка встроенного Clusterstack с распределённой системой управления блокировками (Distributed Lock Manager);

Поддержка буферизованного, прямого, асинхронного, splice() ввода/вывода, а также возможность отображения памяти на файловую систему (Memory Mapped I/Os);

Разнообразные утилиты, обеспечивающие всестороннюю поддержку файловой системы.

Программы

mkfs.ocfs2 — создать файловую систему OCFS2; mount.ocfs2 — примонтировать файловую систему

OCFS2;

mounted.ocfs2 — найти все файловые системы OCFS2 на данном узле;

fsck.ocfs2 — проверить целостность файловой системы

OCFS2;

o2cb — остановка, запуск, настройка кластера (стек OCFS2); включает в свой состав несколько компонентов

(o2nm, o2hb, o2net, o2dlm).

ocfs2console — графичейский интерфейс для управления

OCFS2.

Компоненты o2cb:

o2nm — менеджер узлов (node manager); o2hb — heratbeat agent;

o2net — сетевой агент;

o2dlm — распределённый менеджер блокировок

(distributed lock manager).

146

Gfs2 – аналог ocfs2

Файловая система (ФС) Red Hat GFS2 напрямую взаимодействует с интерфейсом файловой системы ядра Linux (слой VFS). GFS2 может быть развернута в отдельной системе как составляющая конфигурации кластера. В кластерной файловой системе GFS2 использует распределенные метаданные и многочисленные журналы.

В основу GFS2 положена 64-битная архитектура, что теоретически позволяет создать файловую систему размером 8 Эбайт. Но максимально подерживаемый размер файловой системы GFS2 на сегодняшний день составляет 25 Тбайт. Если требуется размер, превышающий 25 Тбайт, обратитесь к вашему консультанту Red Hat.

При определении размера вашей файловой системе сначала обдумайте, как вы будете восстанавливать данные в случае ее сбоя. Например, выполнение команды fsck в достаточно большой файловой системе может занять продолжительное время, при этом используя большой объем памяти. В случае сбоя диска время восстановления зависит от скорости резервного носителя.

Узлы Red Hat GFS2 можно настроить с помощью утилит конфигурации и управления Red Hat Cluster Suite. Red Hat GFS2 обеспечивает совместный доступ к данным для узлов в составе кластера Red Hat, при этом представление файловой системы одинаково для всех узлов GFS2. Это позволяет процессам на различных узлах использовать файлы GFS2 аналогично тому, как процессы на одном узле совместно

используют

файлы

в

локальной

файловой

системе. Конфигурация и

управление кластером Red

Hat содержит более подробную информацию.

 

147

10.4.Лабораторная работа № 9

Архивание фаилов в Linux

Важно отметить, что архивирование в linux это не одно и то же что и сжатие файлов linux. Архивирование — это объединение нескольких небольших файлов в один, с целю более удобной последующей передачи, хранения, шифрования или сжатия. Как я уже сказал, архивация выполняется специальными утилитами. Мы не будем трогать архивацию файлов в графическом интерфейсе, вы с ними разберетесь сами, наша тема — терминал.

Самой популярной для Linux утилитой для архивации есть tar. Она используется почти везде, для архивации исходников, упаковки пакетов. Для сжатия используются другие утилиты, в зависимости от алгоритма сжатия, например, zip, bz, xz, lzma и т д. Сначала выполняется архивация, затем сжатие, отдельными программами. Автоматический запуск некоторых утилит сжатия для только что созданного архива поддерживается в tar и других подобных программах с помощью специальных опций.

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

TAR

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

$ tar опцииf файл_для_записи /папка_файлами_для_архи

ва

148

А теперь разберем основные опции:

A — добавить файл к архиву

c — создать архив в linux

d — сравнить файлы архива и распакованные файлы в файловой системе

j — сжать архив с помощью Bzip

z — сжать архив с помощью Gzip

r — добавить файлы в конец архива

t — показать содержимое архива

u — обновить архив относительно файловой системы

x — извлечь файлы из архива

v — показать подробную информацию о процессе работы

f — файл для записи архива

-C — распаковать в указанную папку

—strip-components — отбросить n вложенных папок Теперь давайте рассмотрим архивирование файлов в

Linux. Чтобы создать архив используйте такую команду: tar -cvf archive.tar.gz /path/to/files

А чтобы распаковать архив tar linux: tar -xvf archive.tar.gz

Очень просто запомнить для упаковки используется опция c — Create, а для распаковки — x — eXtract.

Сжатый архив создается точно так же, только с опцией - z, это в случае, если использовалось шифрование gizp, если нужно bzip то применяется опция -j:

tar -zcvf archive.tar.gz /path/to/files $ tar -zxvf archive.tar.gz

Например, рассмотрим как заархивировать папку в

Linux:

tar -zcvf home.tar.gz ~/

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

149

gzip archive.tar

Также можно убрать сжатие: gunzip archive.tar.gz

Утилиты сжатия мы рассмотрим ниже. Чтобы добавить файл в архив используйте: tar -rvf archive.tar file.txt

Для извлечения одного файла синтаксис тот же: tar -xvf archive.tar file.txt

Можно извлечь несколько файлов по шаблону соответствия с помощью параметра wildcard, например, извлечем все php файлы:

tar -xvf archive.tar --wildcards '*.php'

По умолчанию распаковать архив tar linux можно в текущую папку с именем архива, чтобы распаковать в нужную папку используйте ключ -C:

tar -xvf archive.tar -C /path/to/dir

Стандартную утилиту рассмотрели, теперь кратко рассмотрим ее альтернативы. Их не так много, и большинство из них уже устаревшие.

SHAR

Shar позволяет создавать самораспаковывающиеся архивы. По сути, это скрипт оболочки, и для распаковки ему необходима оболочка Bash или другая совместимая с Bourne Shell. У Shar есть несколько преимуществ, но также он потенциально небезопасный, так как архив представляет собой исполняемый файл.

Опции shar:

-o — сохранять архив в файл вместо стандартного вывода

-l — ограничить размер выходного файла

-L — ограничить размер выходного файла и разбить его на части

-n — имя архива не будет включено в заголовок

-a — разрешить автоматическую генерацию заголовков

150