пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ
Слишком длинный поисковый запрос.
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Представьте, что одним прекрасным днем вы просыпаетесь и понимаете, что ваш программный комплекс не работает, в нем есть ошибка, которую необходимо найти. Такое и в страшном сне не присниться.
Кроме того, вы понимаете, что вам нужно сравнить код двух версий, и вы вынуждены вернуться к предыдущей версии системы. Все паникуют, и это абсолютно нормально!
Благо, есть такая утилита Linux под названием diff, которая прикроет вашу спину.
Что такое команда
diff
?
Довольно часто применяется такая операция, как сравнение файлов и поиск различий между ними. Особенно полезна такая операция в случае, если вам нужно сравнить файлы со сложным кодом или файлы конфигурации.
Вместо того, чтобы сравнивать эти файлы вручную (что может повлечь за собой человеческий фактор), вы можете воспользоваться встроенной мощной утилитой Linux под названием
diff
. Кроме того, вы можете сэкономить свое время.
Помимо команды
diff
, у Linux также есть еще одна команда, с помощью которой вы можете применить изменения одного файла к другому, и это команда
patch
. В этой статье мы подробно рассмотрим эти многофункциональные и крайне интересные команды, чтобы узнать, как их можно применять.
Синтаксис команды
diff
Ниже представлен синтаксис команды
diff
:
diff [options] file1 file2
Синтаксис diff
В зависимости от изменений, команда
diff
может отображать три символа:
Символ
Значение
c
CHANGE – необходимо внести изменения.
d
DELETE – необходимо что-то удалить.
a
ADD – необходимо что-то добавить.
В выводе команды
diff
символ < указывает на первый файл, а символ > - на второй, который используется в качестве ссылки.
Давайте взглянем на несколько примеров, как можно использовать команду
diff
.
Примеры использования команды
diff
Для того, чтобы показать, что файлы одинаковы, вместе с командой
diff
мы используем флаг
-s
. В данном примере два файла (fileA и sameAsfileA) имеют одинаковое содержимое.
В следующем примере у нас есть два файла, содержимое которых отличается. В выводе, продемонстрированном ниже, команда
diff
показывает, что в файле showList_v2.js необходимо изменить строки с номерами 11 и 14, чтобы они соответствовали строкам с номерами 11 и 13 в файле showList_v1.js.
Следующий вариант использования команды
diff
- мой любимый. А все потому, что вы можете наглядно видеть различия.
Просто воспользуйтесь флагом
-y
, как показано ниже:
diff -y file1 file2
Наглядное сравнение файлов
Последний пример, который бы я хотел привести – это пример унифицированного вывода. Эти выходные данные зачастую используются в качестве входных данных для команды
patch
. Заодно мы посмотрим, как работает команда
patch
:
Унифицированный вывод, который используется в качестве входных данных для команды patch
Ниже вы можете видеть несколько других полезных флагов, который можно использовать с командой
diff
:
-i
- флаг позволяет игнорировать регистр. По умолчанию команда
diff
чувствительна к регистру.
-w
- флаг позволяет игнорировать пробелы в файле. По умолчанию пробелы тоже сравниваются.
Синтаксис команды
patch
Вы регулярно вносите изменения в свой код, и для того, чтобы обмениваться отредактированными и исправленными файлами после каждого внесенного изменения, нужно много времени, и это практически невозможно. Как правило, разработчики делятся с командой своими исправлениями в коде, поэтому они сразу же применяются.
Использование команды
patch
- это самый безопасный способ передачи этих исправлений.
Давайте взглянем, как работает команда
patch
:
patch file_to_change < patch_file
Синтаксис команды patch
Примеры использования команды
patch
Вот пример внесения исправлений: допустим, что у нас есть простой код JavaScript [имя файла: print_in_js,js], который печатает строку.
И все-таки в этой функции печати что-то не так, и для того, чтобы выяснить, что именно, нам нужно провести тестирование. Отправляем файл print_in_js,js нашему коллеге, он его исправляет и отправляет обратно нам.
Для начала наш коллега находит неправильный тип в строке под номером 3. Он исправляет файл.
После того, как он исправил файл и убедился, что код работает, он создает «заплатку».
diff -u print_in_js.js print_in_js_Fixed.js > patched_print_js.diff
Создание «заплатки»
Давайте проверим содержимое этой «заплатки»:
Содержимое «заплатки»
Теперь, когда у нас есть «заплатка», мы можем ее применить:
patch print_in_js.js < patched_print_js.diff
Применение «заплатки»
Исправленный код после применения «заплатки»
И да, наш код исправлен!
Заключение
Создавать и применять «заплатки» с помощью команд
patch
и
diff
довольно легко. Аналогичный подход используют системы контроля версий, например, Git или SVN. Изучив основы, вы с легкостью сможете понять, как работает контроль версий, и начать его использовать, ведь именно он является важным аспектом разработки программного обеспечения.
Настройка IPv4-адресации для удаленного доступа к устройствам Cisco
Чтобы иметь возможность подключения к коммутатору по Telnet или SSH, а также использовать другие протоколы управления на основе IP (например, Simple Network Management Protocol или SNMP) функционировать должным образом, коммутатору требуется IP-адрес, а также настройки других сопутствующих параметров. IP-адрес не влияет на функциональную работу коммутатора.
В этой части будут рассмотрены основные параметры IPv4-адресации, необходимые для настройки коммутатора, а затем будут приведены команды и примеры настроек. Коммутаторы могут быть настроены с параметрами IPv6-адресации. Настройки IPv4 и IPv6 аналогичны. Далее уделим основное внимание исключительно IPv4.
Настройки IP-адресации узла и коммутатора
Коммутатор нуждается в тех же настройках IP-адресации, что и компьютер с сетевым интерфейсом Ethernet (FastEthernet). Напомню, что каждый ПК имеет процессор. Этот процессор управляется специальной операционной системой для обработки сигналов и отправки их на сетевую карту. Компьютер имеет минимум оду сетевую карту Ethernet (NIC). Настройки сетевой карты ПК включают в себя: настройка статического или получаемого по DHCP IP-адреса сетевой карты.Коммутатор использует те же принципы, что и ПК, но за исключением того, что коммутатор использует виртуальную сетевую карту внутри устройства. Как и ПК, коммутатор имеет реальный процессор, работающий под управлением ОС (IOS). Коммутатор обладает множеством портов Ethernet (FastEthernet, GigEthernet), но в отличие от ПК, коммутатор не назначает IP-адрес управления какому-то конкретному порту или всем сразу. Коммутатор использует NIC концепцию (NIC-like), называемую коммутируемым виртуальным интерфейсом (SVI), или, чаще всего, именуемым интерфейсом VLAN, который действует как отдельная сетевая карта (NIC) коммутатора. Тогда настройки на коммутаторе сводятся к настройке IP-адресации VLAN. Пример настройки показан на рисунке:
На рисунке изображен виртуальный ПК, подключенный к другим реальным узлам в сети через виртуальный интерфейс VLAN 1. IP-адрес интерфейса VLAN1-192.168.1.8; маска подсети 225.255.255.0 и подсеть VLAN 1 - 192.168.1.0. Виртуальный ПК и интерфейс VLAN1 являются частью коммутатора. Остальные узлы находятся за пределами коммутатора. Используя интерфейс VLAN 1 с настроенной IP-адресацией, коммутатор может отправлять и получать кадры на любом из портов VLAN 1. В коммутаторе Cisco, по умолчанию, все порты назначены во VLAN 1. В коммутаторах можно настроить большое количество VLAN, поэтому у системного администратора есть выбор, какой VLAN использовать. Таки образом IP-адрес управления не обязательно должен быть настроен именно на VLAN1
Коммутатору Cisco второго уровня (L2) задается только один IP-адрес для управления. Однако можно использовать любой VLAN, через который подключается коммутатор. Настройка включает: настройку т интерфейса VLAN с указанием его номера (например VLAN11) и присвоением соответствующего IP-адреса с маской подсети.
Например, на рисунке показан коммутатор 2 уровня с несколькими физическими портами в двух различных VLAN (VLAN 1 и 2). На рисунке также показаны подсети, используемые в этих VLAN. Системный администратор может выбрать для использования передачи данных либо то, либо другое.
На рисунке виртуальный ПК коммутатора соединен с другими системами вне устройства с помощью двух интерфейсов VLAN. Подсети виртуальных локальных сетей 192.168.1.0 и 192.168.2.0.
Интерфейсу VLAN 1 присвоен Ili-адрес из подсети 192.168.1.0
Интерфейсу VLAN 2, присвоен Ili-адрес из подсети 192.168.2.0
Обратите внимание, что VLAN должен быть привязан к физическому порту коммутатора.
Если этого не сделать, то интерфейс VLAN не включится (то есть он будет в состоянии down), и соответственно коммутатор не сможет обмениваться пакетами с другими устройствами в сети.
Примечание: Некоторые коммутаторы Cisco могут быть настроены для работы в качестве коммутатора 2 уровня или коммутатора 3 уровня. Действуя в качестве коммутатора 2 уровня, коммутатор обрабатывает, пересылает и управляет пакетами Ethernet. В другом случае, коммутатор может работать как коммутатор 3 уровня. Это означает, что коммутатор может выполнять как коммутацию 2 уровня, так и маршрутизацию IP-пакетов уровня 3, используя логику третьего уровня, обычно используемую маршрутизаторами. В данной статье рассматриваются коммутаторы второго уровня (L2)
Настройка IP-адреса (и маски) на одном интерфейсе VLAN позволяет коммутатору обмениваться пакетами с другими узлами в подсети, принадлежащей этой VLAN. Однако коммутатор не может взаимодействовать за пределами локальной подсети без другого параметра конфигурации, называемого шлюзом по умолчанию (default gateway).
Причина настройки шлюза по умолчанию на коммутаторе такая же, как и на обычном компьютере. То есть при отправке пакета сетевая карта компьютера думает, как и кому отправить пакет А именно: отправить IP-пакеты узлам, находящимся в той же подсети, напрямую или отправить IP-пакеты узлам, находящимся в другой подсети, через ближайший маршрутизатор, то есть через шлюз по умолчанию.
На рисунке изображена данная концепция:
На коммутаторе (справа) на VLAN1 настроен IP-адрес 192.168.1.200. Через этот интерфейс (VLAN1) коммутатор может обмениваться пакетами с ПК, входящими в подсеть 192.168.1.0 (желтый сектор) Однако для связи с узлом A, расположенным в левой части рисунка, коммутатор должен использовать маршрутизатор R1 (шлюз по умолчанию) для пересылки IP-пакетов на узел A.
Чтобы пакеты дошли до узла А на коммутаторе необходимо произвести настройку шлюза по умолчанию, указав IP-адрес маршрутизатора R1 (в данном случае 192.168.1.1).
Обратите внимание, что коммутатор и маршрутизатор используют одну и ту же маску, 255.255.255.0, которая помещает адреса в одну подсеть.
Настройка IPv4-адресации на коммутаторе
Настройка IP-адресации на коммутаторе осуществляется настройкой на VLAN.
Следующие этапы показывают команды, используемые для настройки IPv4 на коммутаторе (настройка IP-адресации на VLAN 1).
Введите команду interface vlan 1 в режиме глобальной конфигурации для входа в режим настройки интерфейса VLAN 1.
Введите команду ip address <ip-address> <mask> для назначения ip-адреса и маски подсети в режиме конфигурации интерфейса.
Введите команду no shutdown в режиме конфигурации интерфейса, чтобы включить интерфейс VLAN 1, если он еще не включен.
Введите команду ip default-gateway<ip-address> для назначения ip-адреса шлюза по умолчанию в режиме глобальной конфигурации, чтобы настроить шлюз по умолчанию.
(Необязательно) Введите команду ip name-server ip-address1 ip-address2 ... в режиме глобальной конфигурации, чтобы настроить коммутатор на использование DNS для преобразования имен в соответствующие IP-адреса.
Пример настройки статической IP-адресации
В этом примере показана особенно важная и распространенная команда: команда [no] shutdown. Что бы включить интерфейс ("поднять") на коммутаторе, используйте команду no shutdown в режиме конфигурации интерфейса . Что бы отключить интерфейс используйте в этом же режиме команду shutdown . Эта команда может использоваться на физических интерфейсах Ethernet, которые коммутатор использует для пересылки пакетов Ethernet, а также на интерфейсах VLAN. Кроме того, обратите внимание на сообщения, которые появляются непосредственно под командой no shutdown в примере выше. Эти сообщения являются сообщениями системного журнала, генерируемыми коммутатором, говорящий о том, что коммутатор действительно включил интерфейс. Коммутаторы (и маршрутизаторы) генерируют сообщения системного журнала в ответ на различные события, и эти сообщения появляются на консоли.
Настройка коммутатора для получения IP-адреса по DHCP
Коммутатор также может использовать протокол Dynamic Host Configuration Protocol (DHCP)для динамического назначения параметров IPv4-адресации. В принципе, все, что вам нужно сделать, это сказать коммутатору использовать DHCP на интерфейсе и включить интерфейс. Предполагая, что DHCP работает в этой сети, коммутатор автоматически получит все его настройки. Следующие этапы показывают команды для настройки коммутатора, используя в качестве примера интерфейс VLAN 1.
Войдите в режим конфигурации VLAN 1 с помощью команды глобальной конфигурации interface vlan 1 и включите интерфейс с помощью команды no shutdown по мере необходимости.
Назначьте IP-адрес и маску с помощью подкоманды ip address dhcp.
Пример настройки IP-адресации коммутатора по DHCP
Проверка настроек IPv4 - адресации на коммутаторе
Настройку IPv4 адресацию коммутатора можно проверить несколькими способами.
Во-первых, вы всегда можете посмотреть текущую конфигурацию с помощью команды show running-config. Во-вторых, вы можете посмотреть информацию об IP-адресе и маске с помощью команды show interfaces vlan x, которая показывает подробную информацию о состоянии интерфейса VLAN в VLAN x. Наконец, если используется DHCP, используйте команду show dhcp lease, чтобы увидеть (временно) арендованный IP-адрес и другие параметры.
(Обратите внимание, что коммутатор не хранит полученные настройки IP-адресации по DHCP в файле running-config.) Ниже показан пример выходных данных вышеприведенных команд.
Выходные данные команды show interfaces vlan 1 отображают две очень важные детали, связанные с IP-адресацией коммутатора. Во-первых, команда show выводит список состояния интерфейса VLAN 1-в данном случае "up/up." Если интерфейс VLAN 1 выключен, тогда коммутатор не сможет отправлять пакеты через этот интерфейс. Примечательно, что если вы забудете выполнить команду no shutdown, интерфейс VLAN 1 останется в состоянии выключен и будет указан как " administratively down " в выводе команды show.
Во-вторых, обратите внимание, что выходные данные содержат IP-адрес интерфейса в третьей строке. Если вы вручную настроите IP-адрес, то он всегда будет отображаться; однако, если вы используете DHCP и DHCP не работает, то команда show interfaces vlan x не будет выводить IP-адрес на экран. Если же DHCP работает, то вы увидите IP-адрес после использования команды show interfaces vlan 1.
Хотите почитать про базовую настройку коммутаторов? По ссылкам доступны первая и вторая части статьи
В данной статье мы разберем, как устанавливать операционную систему Ubuntu Linux.
Сразу сделаем оговорку, установка операционной системы на виртуальную машину или на реальный ПК/сервер ничем не отличается - разница заключается лишь в том, что может отличатся набор программного обеспечения эмулирующих работу системы виртуализации. И в данном контексте могут быть нюансы.
Мы будем использовать платформу виртуализации Virtual Box. Дистрибутив находится в публичном доступе по ссылке https://www.virtualbox.org. Тут переходим в раздел Downloads и выбираем нужный нам установщик. Мы будем устанавливать программу на Windows, поэтому для скачивания нажимаем Windows hosts.
Данный дистрибутив может скачать любой желающий и установить, он совершенно бесплатен. Установка его достаточно проста, заключается в нажатии кнопки “Next” несколько раз. Нет необходимости вносить изменения - нам подойдут параметры по умолчанию.
В процессе система поставит все необходимые компоненты, в том числе драйвер захвата пакетов и на некоторых моделях ПК/серверов/ноутбуков попросит перезагрузить компьютер. В результате успешной установки на рабочем столе мы увидим иконку запуска приложения Virtual Box.
Запускаем и можем начать создавать наш виртуальный сервер. Для установки операционной системы нам понадобится дистрибутив операционной системы. Данные дистрибутивы находятся в свободном доступе в интернете. С данного сайта https://ubuntu.com/ (или https://ubuntu.ru/ на русском языке) можно скачать дистрибутив Ubutnu или с данного сайта https://www.centos.org/ можно скачать дистрибутив CentOS.
Теперь можно начать создавать виртуальную машину. Нажимаем кнопку "Создать". Появляется диалоговое окно создания виртуальной машины. Необходимо ввести ее название, выбрать тип (в нашем случае Linux) и выбрать версию (в нашем случае Ubuntu x64). Выбор x64 разрядной операционной системы обусловлен фактором работы с оперативной памятью более 3 ГБ. В случае с x32 разрядной операционной системой вся память, что более 3 ГБ видна операционной системе видна не будет.
Нам нужно выделить ей некое количество оперативной памяти, память выделяется из пула доступной оперативной памяти материнской машины (например, если у нас ноутбук с 8 ГБ оперативной памяти, следовательно мы можем выделить от 0 до 6 ГБ, до 6 ГБ потому, что материнской операционной системе тоже требуется для функционирования оперативная память). В большинстве случаев достаточно 2 ГБ оперативной памяти. Далее выбираем папку, где будет хранится файл с настройками виртуальной машины и виртуальный жесткий диск. Система виртуализации создает файл жесткого диска, который занимает объем, который вы выделяете для работы виртуальной машине. Нажимаем кнопку “Создать”.
На следующем шаге система спрашивает, где будем хранить жесткий диск и его объем, тип и формат. Выбираем тип жесткого диска VDI (“Родной” для VirtualBox) и указываем размер HDD. Нажимаем еще раз кнопку “Создать”.
После этого появляется наша виртуальная машина в списке, и мы можем нажать кнопку "Запустить".
После этого система предлагает выбрать загрузочный диск. Нажимаем значок папки.
Получаем вот такое диалоговое окно c выбором дистрибутива загрузочного диска.
Если данное окошко пусто, то необходимо нажать кнопку "Добавить" и указать путь к скаченному файлу установки. Выбираем, затем нажимаем кнопку "Продолжить".
Виртуальная машина видит установочный дистрибутив начинает запускать установочную оболочку.
Если, вы планируете установку версии для Desktop – то можете выбрать удобный для вас язык, в случае установки в качестве серверной выбирать следует язык Английский, потому что это позволит избежать ошибок локализации, которые периодически присутствуют на любой операционной системе.
На следующем экране система попросит определить клавиатуру, можно нажать Identify keyboard для определения, но обычно оболочка корректно определяет тип клавиатуры и изменения не требуется.
Следующий шаг - сетевые настройки.
Тут ситуация следующая - можно оставить по умолчанию IP адрес, который был выдан системой виртуализации, а можно сделать, самостоятельную настройку сети и даже создать интерфейс агрегации для увеличения пропускной способности сервера, но это уже продвинутый уровень, пока нам хватит текущих параметров.
Следующий экран предлагает ввести адрес proxy–server для доступа в интернет, данная опция необходима если в корпоративной среде используется такой сервер.
Следующий шаг - установка просит указать альтернативный источник файлов в сети интернет. Затем - разметка разделов жесткого диска, также можно оставить по умолчанию. При нажатии "Далее" появляется сводная таблица по изменениям, которые будут сделаны на жестком диске.
Можно увидеть, что система достаточно гибко позволяет разметить жесткий диск и файловую систему.
После нажатия "Далее", появляется вот такое окошко с подтверждением. Оно появляется вследствие того, что все файлы на данном разделе будут уничтожены. Следовательно, чтобы подтвердить необходимо выбрать "Continue".
После этого происходит, новая разметка жесткого диска. Разметка — это разделение общего пространства диска на логические разделы. Мы разбили доступное пространство на логические разделы.
Далее необходимо заполнить поля - имя пользователя, имя серверарабочей станции, пароль.
Нажимаем "Далее". Следующий экран предлагает нам установить OpenSSH сервер - данный пакет опционален, но лучше его поставить. OpenSSH нам позволит подключаться к серверу в дальнейшем по протоколу SSH.
И последний экран перед началом установки - оболочка спрашивает, какие пакеты могут понадобиться для работы. Можно пока пропустить.
После нажатия "Далее" начинается установка операционной системы.
При наличии интернета система, автоматически обращаться будет к своим репозиториям за обновлениями. Если мы хотим сократить время установки, то при появлении кнопки "Cancel update and reboot" мы можем отменить данное обновление и перезагрузить VM. Затем на экране появится ошибка, что операционная система не может размонтировать CD-ROM, нажимаем Enter и операционная система начинает грузится. Данное сообщение появляется, т.к. CD-ROM виртуальный и она это не понимает и не может его физически открыть. Следовательно, данное сообщение не имеет значения.
После перезагрузки, мы получаем полнофункциональную операционную систему.
Заходим под логином и паролем, которые мы указывали на этапе установки операционной системы.
Готово, успех! 🏆
Мы установили Linux на виртуальную машину.
