По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Если вы еще не умеете писать скрипты в системах Unix и Linux, эта статья познакомит с основами написания скриптов. Написание скриптов в системе Unix или Linux может быть одновременно и простым и чрезвычайно сложным. Все зависит от того, что вы пытаетесь выполнить, используя скрипт. В этой статье мы рассмотрим основы создания скриптов - то, как начать, если вы никогда раньше не создавали скрипты. Идентификация оболочки. Сегодня в системах Unix и Linux есть несколько оболочек, которые вы можете использовать. Каждая оболочка - это интерпретатор команд. Он считывает команды и отправляет их ядру для обработки. Bash является одной из самых популярных оболочек, но существуют также zsh, csh, tcsh и korn. Есть даже оболочка под названием fish, которая может быть особенно полезна новичкам в Linux благодаря полезным параметрам автозаполнения команд. Чтобы определить, какую оболочку вы используете, используйте эту команду: $ echo $SHELL /bin/bash Вы также можете определить свою основную оболочку, просмотрев файл /etc/passwd: $ grep $USER /etc/passwd nemo:x:1111:1111:Nemo the Fish:/home/nemo:/bin/bash “ read myfile else myfile=$1 fi if [ ! -f “$myfile” ]; then echo “Файл не найден: $myfile” exit fi case $myfilein *.tar) tar xf $myfile;; *.zip) unzip $myfile;; *.rar) rar x $myfile;; *) echo “Нет опций для извлечения $myfile” esac Обратите внимание, что этот сценарий также запрашивает имя файла, если оно не было предоставлено, а затем проверяет, действительно ли указанный файл существует. Только после этого выполняется извлечение. Реакция на ошибки Вы можете обнаруживать ошибки в скриптах и реагировать на них и тем самым избегать других ошибок. Хитрость заключается в том, чтобы проверять выходные коды после запуска команд. Если код выхода имеет значение, отличное от нуля, произошла ошибка. В этом скрипте проверяется, запущен ли Apache, но отправляем результат проверки в /dev/null. Затем проверяем, не равен ли код выхода нулю, поскольку это означает, что команда ps не получила ответа. Если код выхода не равен нулю, сценарий сообщает пользователю, что Apache не запущен. #!/bin/bash ps -ef | grep apache2 > /dev/null if [ $? != 0 ]; then echo Apache is not running exit fi
img
При решении целого ряда задач администратору требуется изменить уровень доступа, который управляется командой chmod (change mode – изменить режим). Разберём подробнее как именно происходит изменение прав и какие ещё команды могут пригодиться Вам в этом процессе. Введение Структура разрешений для файлов и директорий в Linux являет собой матрицу 3 на 3 – есть три различных уровней доступа (read, write и execute – чтение, запись и выполнение), которые доступны для трёх типов пользователей – владельца файла, группы и others – «остальных». Для наглядности, посмотрите на вывод команды ls -l -rw-r--r-- 1 root root 0 Mar 10 11:05 freepbx_menu.conf В примере выше, пользователь - root, обладает правами чтения и записи, группа имеет права чтения, также, как и others. r (read) - разрешение на чтение содержимого файла, в случае директории – право на просмотр файлов и поддиректорий w (write) - разрешение на запись в файл, для директории – возможность создания файлов в директории и создание поддиректорий x (execute) - разрешение на запуск файла в виде программыскрипта, для директории – допуск в директорию Изменение уровня доступа Для начала необходимо указать на важный момент – каждый уровень доступа имеет свое численное обозначение: r (read) - 4 w (write) - 2 x (execute) - 1 Для получения комбинаций прав – числа нужно сложить. Для уровня доступа rwx число будет равным 7 (4+2+1). Использовать можно также и буквенные обозначения, как удобнее конкретно для вас, но с численным представлением команды получаются короче :) При изменении уровня доступа у файла нужно знать следующее: Первое число - права для юзера Второе число - права для группы Третье число - права для others К примеру, дадим права на чтение для пользователя, чтение для группы и нулевой уровень доступа для остальных: chmod 440 file.txt Права на чтение, запись и исполнение для пользователя, группы и остальных: chmod 777 file2.txt И соответственно, так далее, в зависимости от ваших нужд. Использование umask – настройка уровня доступа по умолчанию По умолчанию значение umask - 0022, которое определяет права доступа по дефолту для нового файла или директории. Для файла разрешение по умолчанию равно 0666, для директории - 0777. Значение маски вычитается из этих дефолтных значений и получается финальное значение. У файла по умолчанию – 0666, то есть права rw-rw-rw-, но с учетом дефолтной маски 0022, файл будет создан со значением 0644 – rw-r—r--. В случае директории результирующим значением будет 0755, то есть rwx-r-x-r-x. С помощью команды umask xxxx всегда можно изменить значение маски по умолчанию. К примеру: umask 0077 Как видно, права изменились с rw-r--r--для нового файла на –rw-------. Несколько полезных примеров использования chmod Ниже приведён список нескольких вариантов использования команды chmod - во многих случаях они очень сильно облегчают процесс настройки вашего сервера. На всякий случай помните, что пользователь имеет обозначение u, группа g и остальные - o. Если же необходимо изменение прав сразу у всех вышеупомянутых сущностей – используйте обозначение a. chmod u+x %имяфайла% - добавление права выполнения только для пользовательского уровня, то есть добавление права execute для user; chmod u+r,g+x %имяфайла% - добавление прав чтения для юзера и исполнения для группы; chmod u-rx %имяфайла% - модификатор - используется для того, чтобы убрать какое-то разрешение, в данном случае – для пользователя остается только право записи в файл; chmod a+rx %имяфайла или директории% -добавление права выполнение и чтения для юзера, группы и остальных – то есть вообще все могут исполнять этот файл; $ chmod --reference=%имяфайла1% %имяфайла2% - установка прав доступа для файла1 равными правам доступа у файла2; chmod -R 755 %имядиректории%/ - рекурсивное изменение прав доступа для всех файлов и подкаталогов в директории; chmod u+X * -изменение прав доступа только для подкаталогов, у файлов в главной директории уровень прав доступа останется неизменным;
img
Многоуровневый коммутатор будет использовать информацию из таблиц, которые созданы (плоскость управления) для построения аппаратных таблиц. Он будет использовать таблицу маршрутизации для построения FIB (информационной базы пересылки) и таблицу ARP для построения таблицы смежности. Это самый быстрый способ переключения, потому что теперь у нас есть вся информация уровня 2 и 3, необходимая для пересылки аппаратных пакетов IP. Давайте посмотрим на информационную таблицу о пересылке и таблицу смежности на некоторых маршрутизаторах. Будем использовать ту же топологию, что и ранее. 3 роутера и R3 имеет интерфейс loopback0. Будем использовать статические маршруты для полного подключения: R1(config)#ip route 3.3.3.0 255.255.255.0 192.168.23.3 R1(config)#ip route 192.168.23.0 255.255.255.0 192.168.12.2 R2(config)#ip route 3.3.3.0 255.255.255.0 192.168.23.3 R3(config)#ip route 192.168.12.0 255.255.255.0 192.168.23.2 Это статические маршруты, которые мы будем использовать. Теперь посмотрим на таблицу маршрутизации и FIB: show ip cef показывает нам таблицу FIB. Вы можете видеть, что есть довольно много вещей в таблице FIB. Ниже даны разъяснения по некоторым из записей: 0.0.0.0/0 - это для интерфейса null0. Когда мы получим IP-пакеты, соответствующие этому правилу, то оно будет отброшено. 0.0.0.0 /32 - это для всех-нулевых передач. Забудьте об этом, так как мы больше не используем его. 3.3.3.0 /24 - это запись для интерфейса loopback0 R3. Обратите внимание, что следующий переход - это 192.168.12.2, а не 192.168.23.3, как в таблице маршрутизации! 192.168.12.0/24 - это наша непосредственно подключенная сеть. 192.168.12.0/32 зарезервировано для точного сетевого адреса. 192.168.12.1/32 - это IP-адрес на интерфейсе FastEthernet 0/0. 192.168.12.2/32 - это IP-адрес на интерфейсе FastEthernet 0/0 R2. 192.168.12.255/32 - это широковещательный адрес для сети 192.168.12.0/24. 224.0.0.0/4 - соответствует всему многоадресному трафику. Он будет удален, если поддержка многоадресной рассылки отключена глобально. 224.0.0.0/24 - соответствует всему многоадресному трафику, зарезервированному для трафика управления локальной сетью (например, OSPF, EIGRP). 255.255.255.255/32 - широковещательный адрес для подсети. Давайте подробно рассмотрим запись для network 3.3.3.0/24: Номер версии говорит нам, как часто эта запись CEF обновлялась с момента создания таблицы. Мы видим, что для достижения 3.3.3.0/24 нам нужно перейти к 192.168.23.3 и что требуется рекурсивный поиск. Следующий прыжок-192.168.12.2. Он также говорит, что это valid cached adjacency (допустимая кэшированная смежность). Существует целый ряд различных смежностей: Null adjacency: используется для отправки пакетов в интерфейс null0. Drop adjacency: это для пакетов, которые не могут быть переданы из-за ошибок инкапсуляции, маршрутов, которые не могут быть разрешены, или протоколов, которые не поддерживаются. Discard adjacency: это относится к пакетам, которые должны быть отброшены из-за списка доступа или другой политики. Punt adjacency: используется для пакетов, которые отправляются на плоскость управления для обработки. Пакеты, которые не пересылаются CEF, обрабатываются процессором. Если у вас есть много таких пакетов, то вы можете увидеть проблемы с производительностью. Вы можете видеть, сколько пакетов было обработано процессором: Вы можете использовать команду show cef not-cef-switched, чтобы проверить это. Количество пакетов указано по причине: No_adj: смежность не является полной.. No_encap: Информация об ARP является неполной. Unsupp’ted: пакет имеет функции, которые не поддерживаются. Redirect: Перенаправление ICMP. Receive: Это пакеты, предназначенные для IP-адреса, настроенного на интерфейсе уровня 3, пакеты, предназначенные для нашего маршрутизатора. Options: В заголовке пакета есть параметры IP-адреса. Access: ошибка сравнения со списком доступа Frag: ошибка фрагментации пакетов Мы также можем взглянуть на таблицу смежности, в которой хранится информация уровня 2 для каждой записи: Вы можете использовать команду show adjacency summary, чтобы быстро посмотреть, сколько у нас есть смежностей. Смежность - это отображение от уровня 2 до уровня 3 и происходит из таблицы ARP. R1#show adjacency Protocol Interface Address IP FastEthernet0/0 192.168.12.2(9) R1 имеет только один интерфейс, который подключен к R2. Вы можете увидеть запись для ip 192.168.12.2, который является интерфейсом FastEthernet 0/0 R2. Давайте увеличим масштаб этой записи: Мы видим там запись для 192.168.12.2 и там написано: CC011D800000CC001D8000000800 Что означает это число? Это MAC-адреса, которые нам нужны, и Ethertype ... давайте разберем поподробнее его: CC011D800000 - это MAC-адрес интерфейса R2 FastEthernet0 / 0 CC001D800000 - это MAC-адрес интерфейса R1 FastEthernet0/0. 0800 - это Ethertype. 0x800 означает IPv4. Благодаря таблицам FIB и смежности у нас есть вся информация уровня 2 и 3, которая нам требуется для перезаписи и пересылки пакетов. Имейте в виду, что перед фактической пересылкой пакета мы сначала должны переписать информацию заголовка: Исходный MAC-адрес. Конечный MAC-адрес. Контрольная сумма кадров Ethernet. TTL IP-пакета. Контрольная сумма IP-пакетов. Как только это будет сделано, мы сможем переслать пакет. Теперь у вас есть представление о том, что такое CEF и как обрабатываются пакеты. Возникает вопрос, а в чем разница между маршрутизаторами и коммутаторами, поскольку многоуровневый коммутатор может маршрутизировать, а маршрутизатор может выполнять коммутацию. Различие между устройствамистанвится все меньше, но коммутаторы обычно используют только Ethernet. Если вы покупаете Cisco Catalyst 3560 или 3750, то у вас будут только интерфейсы Ethernet. У них есть ASICs, поэтому коммутация кадров может выполняться со скоростью линии связи. С другой стороны, маршрутизаторы имеют другие интерфейсы, такие как последовательные каналы связи, беспроводные сети, и они могут быть модернизированы модулями для VPN, VoIP и т. д. Вы не сможете настроить такие вещи, как NAT/PAT на (маленьком) коммутаторе. Однако грань между ними становится все тоньше Маршрутизаторы используются для маршрутизации, коммутаторы уровня 2-для коммутации, но многоуровневые коммутаторы могут выполнять комбинацию того и другого. Возможно, ваш коммутатор выполняет 80% коммутации и 20% маршрутизации или наоборот. TCAM можно "запрограммировать" на использование оптимальных ресурсов с помощью шаблонов SDM. SDM (Switching Database Manager) используется на коммутаторах Cisco Catalyst для управления использованием памяти TCAM. Например, коммутатор, который используется только для коммутации, не требует никакой памяти для хранения информации о маршрутизации IPv4. С другой стороны, коммутатору, который используется только в качестве маршрутизатора, не потребуется много памяти для хранения MAC-адресов. SDM предлагает ряд шаблонов, которые мы можем использовать на нашем коммутаторе, вот пример коммутатора Cisco Catalyst 3560: Выше вы можете видеть, что текущий шаблон является "desktop default", и вы можете видеть, сколько памяти он резервирует для различных элементов. Вот пример других шаблонов: Вот шаблоны SDM для коммутатора. Мы можем изменить шаблон с помощью команды sdm prefer: Вы должны перезагрузить устройство прежде, чем он вступит в силу: SW1#reload Теперь давайте еще раз проверим шаблон: По сравнению с шаблоном "desktop default" мы теперь имеем двойное хранилище для одноадресных MAC-адресов. Однако для маршрутов IPv4 ничего не зарезервировано. Это хорошая идея, чтобы установить шаблон SDM, для того чтобы соответствовать необходимому использованию вашего коммутатора. Если вы делаете как коммутацию, так и маршрутизацию и не уверены в том, какой шаблон выбрать, то вы можете посмотреть на текущее использование TCAM, вот как это сделать: На данном рисунке многое не отображено, но вы можете видеть, как заполняется TCAM в данный момент. Теперь вам есть что сравнить с шаблонами SDM.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59