По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Партнер данного материала Telegram-канал Админим с Буквой Тема статьи небольшая, но информация данная необходима для понимания ограничений на дисках в операционной системе Linux. В данной статье рассмотрим: Установка квоты Редактирование квоты Просмотр отчетов по квотам Квоты – это ограничения, налагаемые системным администратором на использование дискового пространства в операционных системах. Они позволяют гибко управлять ограниченным ресурсом для сервера свободным местом на жестком диске. Квоты можно устанавливать, как на отдельных пользователей, так и на группы пользователей. Для конфигурации и управления квотами используются следующие команды: quotaon – включение квоты quotaoff – выключение квоты edquota – редактирование квоты repquota - отчет по квотам У Windows Server, конечно намного богаче инструментарий по работе с квотами. Для этого выделена целый File Server Resource Manager, но в данной статье мы посмотрим, как это работает в Linux системах на примере Ubuntu Server. У меня есть смонтированый раздел /dev/sdc1 в папку /mnt/hard. Для того, чтобы работать с квотами, необходимо поставить пакет apt-get install quota. Для того, чтобы использовать квоты, нам необходимо добавить монтирование данного раздела в файл /etc/fstab. Добавляем следующую строчку: /dev/sdc1 /mnt/hard auto rw,user,auto,usrquota,grpquota 0 0 Где, раздел, куда монтируем, автоопределение файловой системы, раздел для записи, разрешаем монтирование пользователям, раздел будет монтироваться автоматически при старте системы и включаем пользовательскую квоту и групповую. Строка будет выглядеть как на картинке. Сохраняем и перезагружаем. Для начала выключаем все квоты, если они когда-нибудь ставились, для чистоты настройки quotaoff /mnt/hard. Следующая команда quotacheck – которая создаст квоту для пользователей и групп, у нее большой функционал, но мы ее используем именно в таком ключе. Квоту мы можем создать только полностью на примонтированный раздел – это связанно с файловой системой ext4. Существуют и другие файловые системы, в которых мы можем ставить квоты на папки и работать более гибко, например xfs. quotacheck –cug /mnt/hard. В данном случае мы квоту ставим полностью на раздел, который смонтирован в /mnt/hard. И как видим команда создала 2 файла aquota.group и aquota.user. Это файлы с настройками квот. Это двоичные файлы и при попытке их посмотреть, например, cat aquota.user мы увидим, нечто не читаемое. Для редактирования данных фалов настройки текстовый редактор не подойдет, и мы будем использовать отдельную команду edquota – u siadmin. Т.е команда -u указывает , что мы редактируем для пользователя и далее указывается непосредственно пользователь. Вот так выглядит редактирование. Мы видим, что здесь есть blocks – число 1К блоки, soft – мягкая квота, это квота, которую пользователь может превысить, но не более чем на неделю, hard – жесткая квота, это квота которую пользователь не сможет превысить вообще. Получается так, если пользователь siadmin поставит soft 10 и hard 30, и запишу файлик в 15КБ, то неделю моя квота терпит, а через неделю система скажет, что квота превышена и будет требовать очистки. Если создать сразу файл 40 КБ, то квота скажет, что нету места на жестком диске. Так же можно поставить квоту на inodes, т.е на уникальные идентификаторы файлов, каждому файлу присваивается уникальный идентификатор, следовательно, пользователь не может превысить их количество по квоте. Когда мы выполняем команду edquota, то для открытия открывается редактор, установленный по умолчанию. В данном случае редактор nano. Как было уже написано мягкая квота устанавливается на неделю и после чего начинает блокировать, если мы не уменьшили размер файлов или не уменьшили их количество, смотря какая квота была выставлена. Мы можем данный параметр изменить, выполнив sudo edquota –t. Думаю, открытый файл на редактирование, тут все интуитивно понятно. Меняем и сохраняем. Мы в файле /etc/fstab указали, что файловая система монтируется с применением квот, потом командой quotacheck создали квоты, а затем указали ограничения edquota. Но до сих пор квоты не включены, квоты не работают! Для того, чтобы квоты заработали используется команда sudo quotaon /mnt/hard. И как только мы эту команду дали, файлы созданные aquota.group и aquota.user будут отредактированы и квоты заработают. Чтобы посмотреть, как работают квоты, создадим файл текстовый. Но т.к монтировался раздел из под root, то необходимо сменить владельца папки /mnt/hard/. Это можно сделать командой chown siadmin:root /mnt/hard. И теперь спокойно можно создать файл touch test.txt. Теперь добавим в файл информацию несколько слов. edquota – u siadmin выполняем и видим, что число блоков изменилось. Добавим еще информации, еще раз поменяется количество блоков. Создадим еще один файл – изменится число inodes. Далее простым копирование увеличиваем количество файлов, пока не сработает квота. Соответственно мы одновременно можем использовать квоты и по размеру, и по inodes. Очень важный момент. Поднимаемся в корневую папку /. Команда sudo repqouta /mnt/hard покажет отчет по квотам. Есть еще интересная команда - man warnquota. Команда отправляет e-mail при превышении квоты. Но для этого необходимо настроить почтовый smtp сервер, который будет отправлять почту.
img
JSON (JavaScript Object Notation – нотация объектов JavaScript) – это популярный способ структурирования данных. Он используется для обмена информацией между веб-приложением и сервером. Но как прочитать файл JSON в Python? В этой статье я покажу вам, как использовать методы json.loads() и json.load() для интерпретации (или как еще говорят парсинга) и чтения файлов и строк JSON. Синтаксис JSON Прежде чем мы приступим к интерпретации и чтению файла JSON, сначала нам нужно разобраться с основным синтаксисом. Подробнее про JSON можно почитать в этой статье. Синтаксис JSON выглядит как объектный литерал JavaScript с парами ключ-значение. Вот пример данных JSON с данными организации: { "organization": "Company 1", "website": "https://www.website.org/", "formed": 2014, "certifications": [ { "name": "Responsive Web Design", "courses": [ "HTML", "CSS" ] }, { "name": "JavaScript Algorithms and Data Structures", "courses": [ "JavaScript" ] }, { "name": "Front End Development Libraries", "courses": [ "Bootstrap", "jQuery", "Sass", "React", "Redux" ] }, { "name": "Data Visualization", "courses": [ "D3" ] }, { "name": "Relational Database Course", "courses": [ "Linux", "SQL", "PostgreSQL", "Bash Scripting", "Git and GitHub", "Nano" ] }, { "name": "Back End Development and APIs", "courses": [ "MongoDB", "Express", "Node", "NPM" ] }, { "name": "Quality Assurance", "courses": [ "Testing with Chai", "Express", "Node" ] }, { "name": "Scientific Computing with Python", "courses": [ "Python" ] }, { "name": "Data Analysis with Python", "courses": [ "Numpy", "Pandas", "Matplotlib", "Seaborn" ] }, { "name": "Information Security", "courses": [ "HelmetJS" ] }, { "name": "Machine Learning with Python", "courses": [ "Machine Learning", "TensorFlow" ] } ] } Как парсить строки JSON в Python Python имеет встроенный модуль, который позволяет работать с данными в формате JSON. Вам необходимо будет импортировать модуль json. import json Если вам необходимо проинтерпретировать строку JSON, возвращающую словарь, то вы можете воспользоваться методом json.loads(). import json # assigns a JSON string to a variable called jess jess = '{"name": "Jessica Wilkins", "hobbies": ["music", "watching TV", "hanging out with friends"]}' # parses the data and assigns it to a variable called jess_dict jess_dict = json.loads(jess) # Printed output: {"name": "Jessica Wilkins", "hobbies": ["music", "watching TV", "hanging out with friends"]} print(jess_dict) Как парсить и читать файлы JSON в Python В данном примере мы имеем файл в формате JSON с именем fcc.json, который содержит те же данные, что и ранее, касающиеся курсов, которые предлагает сайт. Если вы хотите прочитать этот файл, то для начала вам нужно использовать встроенную в Python функцию open() с режимом чтения. Мы используем ключевое слово with, чтобы убедиться, что файл закрыт. with open('fcc.json', 'r') as fcc_file: Если файл не может быть открыт, то мы получим ошибку OSError. Это пример ошибки "FileNotFoundError" при опечатке в имени файла fcc.json. Затем мы можем проинтерпретировать файл, используя метод json.load() и присвоить его переменной с именем fcc_data. fcc_data = json.load(fcc_file) И в конце мы должны напечатать результат. print(fcc_data) Вот так будет выглядеть полный код: import json with open('fcc.json', 'r') as fcc_file: fcc_data = json.load(fcc_file) print(fcc_data) Как красиво напечатать данные JSON в Python Если мы посмотрим на то, как печатаются данные, то увидим, что все данные JSON печатаются в одной строке. Однако такой формат вывода может быть затруднительным для чтения. И чтобы это исправить, мы можем реализовать метод json.dumps() с параметром indent (отступ). В данном примере мы сделаем отступ в 4 пробела и будем печатать данные в более удобном для чтения формате. print(json.dumps(fcc_data, indent=4)) Также мы можем отсортировать ключи в алфавитном порядке, используя параметр sort_keys и установив его значение на True. print(json.dumps(fcc_data, indent=4, sort_keys=True)) Заключение JSON – это популярный способ структурирования данных, который используется для обмена информацией между веб-приложением и сервером. Если вам необходимо проинтерпретировать строку JSON, которая возвращает словарь, то вы можете использовать метод json.loads(). Если вам необходимо проинтерпретировать файл JSON, который возвращает словарь, то вы можете использовать метод json.load().
img
Настройка 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. Хотите почитать про базовую настройку коммутаторов? По ссылкам доступны первая и вторая части статьи
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59