По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Перечисления, или перечисляемые типы данных, - это список постоянных значений с именами, которые удобны для разработчиков. В программировании они нужны для того, чтобы определить набор предопределенных значений, которые может принимать переменная. Определение списка значений Перечисления – это список значений, где каждое значение уникально. В перечислении не может быть двух значений с идентичными именами. Это весьма полезно, если нужно определить все возможные варианты значений, которые может обрабатывать функция.  Например, у вас есть перечисление под названием «Fruits». В нем хранится список фруктов, которые понятны для приложения. Именно в этом и есть ключевое отличие перечисления от использования строки для того, чтобы представить эту переменную, – строка может иметь бесконечное число возможных значений, а это перечисление – только три.  Это перечисление вы можете использовать в своем коде, например, для того, чтобы проверить, соответствует ли тип пользовательского ввода элементу Apple, или для передать его оператору switch/case в качестве аргумента для того, чтобы выполнить определенные действия для каждого типа возможного значения.  С точки зрения внутренней структуры перечисления сами по себе являются значениями. Это, конечно, зависит от реализации языка, но, например, в C# перечисления по умолчанию являются целыми значениями. Значения по умолчанию начинаются с 0, 1, 2, 3 и т.д., но их можно изменить вручную. Можно установить определенное значение для каждого элемента перечисления. Например, это могут быть коды состояния HTTP: Они могут преобразовываться из значения в перечисление и наоборот с помощью простого приведения типов: Перечисления не просто полезны для определения набора элементов, но они также неплохо помогают разработчикам. Даже если вы конвертируете данные в строковый или целочисленный тип перед тем, как отправить их в API, использования перечислений в вашей кодовой базе в любом случае обеспечит большую гибкость и приведет ваш код в порядок.  К тому же, наличие выпадающих списков с автозаполнением со списком возможных значений может помочь не только вам, но и любому, кто будет работать с вашей кодовой базой в дальнейшем. Никто не хочет сопровождать программный код, который в качестве аргументов принимает строки и выполняет случайные действия, основываясь на входных данных. Использование перечислений, напротив, строго определяет то, как себя будет вести приложение.  Недостатки использования перечислений Основной недостаток перечислений заключается в том, что, как только они перестают находиться в вашей кодовой базе, они теряют свое особое значение. Например, у вас есть API, в котором вы сохраняете и отправляете данные. Для начала вам необходимо сериализовать перечисление, которое, скорее всего, по умолчанию принимает базовые значения 0, 1, 2 и т.д. Некоторые языки программирования поддерживают перечисления с базовыми строковыми значениями или настраивают правила сериализации перечислений так, чтобы сгладить эту проблему.  Проблемой может стать и изменение перечислений. Как только вы начинаете использовать перечисление, вы не можете больше менять порядок элементов. У вас есть право только добавить элементы в конец списка. В противном случае хранящиеся данные, которые используют старую версию перечисления, перестанут быть актуальными и будут искажены.  Перечисления как флаги Еще одно популярное направление использования перечислений – это определение битовых флагов. Это достаточно продвинутая концепция, но по сути речь идет о том, что каждое значение перечисления – это логическое значение. Все эти перечисления можно хранить вместе в одном целом числе и использовать для выполнения быстрого поиска логических данных. Это действительно работает, потому что каждое значение перечисления соответствует разным битам базового числа. Для двоичного представления значения перечисления будут следующие: 0, 1, 2, 4, 8, 16 и т.д. И вы можете соединить их вместе, чтобы получить список логических значений.  Почему именно такой вариант, а не несколько логических значений? Что ж, во-первых, это экономит место, а это в некоторых ситуациях (когда у вас их много) может быть очень на руку. Но, что еще важнее, при таком подходе можно очень быстро получить доступ к каждому значению, особенно если вам нужно получить доступ к нескольким значениям. Например, вы хотите проверить, выходной сегодня или нет. Вы можете проверить суббота сегодня или воскресенье ( Saturday | Sunday ), и все это из того же байта, что был загружен в память. Центральному процессору необходимо извлечь лишь один элемент, чтобы получить список всех флагов. 
img
Telnet - это протокол прикладного уровня в модели TCP / IP. Этот протокол позволяет устройству (клиенту Telnet) подключаться к удаленному хосту (серверу Telnet), используя TCP в качестве протокола транспортного уровня. Обычно сервер Telnet прослушивает соединения Telnet на TCP-порту 23. Устройство, на котором работает VRP, может функционировать как клиент Telnet и сервер Telnet. Например, вы можете войти в систему и использовать его в качестве клиента Telnet для подключения к другому устройству через Telnet. На рисунке 1 показан такой сценарий, в котором R1 функционирует как сервер Telnet и клиент Telnet для ПК и R2 соответственно. Вход в устройство через Telnet Чтобы войти в устройство с ПК под управлением операционной системы Windows, выберите "Пуск"> "Выполнить" и выполните команду telnet ip-address. Например, чтобы войти в устройство с IP-адресом 10.137.217.177, введите команду telnet 10.137.217.177 и нажмите OK (рис. 2). В появившемся диалоговом окне входа в систему введите имя пользователя и пароль. Если аутентификация прошла успешно, отобразится приглашение командной строки <Huawei>. Управление файлами VRP использует файловую систему для управления всеми файлами и каталогами на устройстве. Базовые концепции Файловая система VRP используется для создания, удаления, изменения, копирования и отображения файлов и каталогов, которые хранятся во внешнем хранилище устройства, которое для маршрутизаторов Huawei представляет собой флэш-память и SD-карты, а для коммутаторов Huawei - флэш-память и CF-карты. Некоторые устройства также используют внешние USB-диски в качестве дополнительных устройств хранения. На внешнем запоминающем устройстве могут храниться файлы различных типов, включая файл конфигурации, файл системного программного обеспечения, файл лицензии и файл исправления (patch). Файл системного программного обеспечения является файлом операционной системы VRP и должен храниться в формате .cc в корневом каталоге внешнего запоминающего устройства. Содержимое этого файла загружается в память устройства и запускается при включении устройства. Резервное копирование файла конфигурации В некоторых сценариях, таких как обновление системы, может потребоваться создать резервную копию файла конфигурации устройства в определенной папке на внешнем запоминающем устройстве. В следующем примере описан процесс резервного копирования, предполагая, что вы уже вошли в R1 через ПК (рис. 3). Задание файла для резервного копирования Команда dir [/all] [filename | directory] отображает файлы по указанному пути. all указывает,что отображаются все файлы и каталоги в текущем пути, включая любые файлы в корзине. filename указывает файл. Directory задает каталог. Чтобы проверить файлы и каталоги в корневом каталоге флэш-памяти R1, выполните следующую команду: В этом примере будет создана резервная копия файла конфигурации vrpcfg.zip размером 1351 байт. Создание каталога Запустите команду mkdir directory, чтобы создать каталог. directory определяет имя создаваемого каталога (включая путь к нему). Чтобы создать каталог backup в корневом каталоге (root) флэш-памяти устройства, выполните следующую команду: Копирование и переименование файла конфигурации Запустите команду copy source-filename destination-filename, чтобы скопировать файл. source-filename (имя-источника) указывает путь и имя исходного файла. destination-filename (имя-назначения) указывает путь и имя файла назначения. Чтобы скопировать файл конфигурации vrpcfg.zip в каталог backup и переименовать файл в vrpcfgbak.zip, выполните следующую команду: Проверьте, что файл был скопирован. Выполните команду cd directory, чтобы изменить текущий рабочий каталог. Чтобы проверить, было ли успешно выполнено резервное копирование файла конфигурации, выполните следующие команды: Выходные данные команды показывают, что каталог backup содержит файл vrpcfgbak.zip, что означает, что файл конфигурации vrpcfg.zip был скопирован. Передача файлов TFTP Trivial File Transfer Protocol (TFTP) - это простой протокол прикладного уровня в модели TCP / IP, используемый для передачи файлов. Он использует UDP в качестве протокола транспортного уровня с портом 69. TFTP работает в модели клиент/сервер. Маршрутизаторы и коммутаторы Huawei работают только как клиенты TFTP. На рис. 4 ПК функционирует как сервер TFTP, а маршрутизатор - как клиент TFTP. TFTP используется для передачи файла системного программного обеспечения VRP с ПК на маршрутизатор. Команда tftp tftp-server {get / put} source-filename [destination-filename] настраивает TFTP для передачи файлов. tftp-server задает IP-адрес сервера TFTP. get указывает, что файл должен быть загружен с сервера TFTP на клиент TFTP. put указывает, что файл должен быть загружен с клиента TFTP на сервер TFTP. source-filename указывается имя файла-источника. destination-filename указывает имя файла назначения. Чтобы загрузить файл системного программного обеспечения VRP devicesoft.cc с компьютера на маршрутизатор выполните следующую команду: TFTP прост в реализации и использовании, но не обеспечивает никакой безопасности (например, он не проверяет учетные данные пользователя или не шифрует данные). Любой желающий может загружать или скачивать файлы на серверы TFTP или с них, что делает TFTP подходящим для передачи файлов только в защищенных сетевых средах. Для повышения безопасности используйте FTP или SFTP. FTP Подобно TFTP, протокол передачи файлов (FTP) является протоколом прикладного уровня в модели TCP / IP. Он использует TCP в качестве протокола транспортного уровня с портом 21. Маршрутизаторы и коммутаторы Huawei, на которых работает VRP, могут функционировать как FTP-серверы, а также как FTP-клиенты. По сравнению с TFTP FTP более безопасен, так как для установки FTP-соединения требуются учетные данные пользователя. Кроме того, FTP позволяет удалять файлы, а также создавать и удалять каталоги файлов на FTP-сервере. На рисунке 5 ПК функционирует как FTP-сервер, а маршрутизатор - как FTP-клиент. FTP используется для передачи файла системного программного обеспечения VRP с ПК на маршрутизатор. Запустите команду ftp host-ip [port-number], чтобы создать FTP-соединение. hostip указывает IP-адрес FTP-сервера. port-number указывает номер порта FTP-сервера. По умолчанию используется TCP-порт 21. Запустите команду dir, чтобы проверить список файлов на FTP-сервере. Подобно TFTP, FTP использует ключевые слова get и put: get в команде get source-filename [destination-filename] указывает, что файл должен быть загружен с FTP-сервера на FTP-клиент, и put в команде put source-filename [destinationfilename] указывает, что файл должен быть загружен с FTP-клиента на FTP-сервер. В этом примере команда get vrpsoft.cc devicesoft.cc запускается для загрузки файла программного обеспечения системы VRP vrpsoft.cc с FTP-сервера (ПК) на FTP-клиент (маршрутизатор) и переименования файла devicesoft.cc. FTP передает данные в виде открытого текста. Для повышения безопасности используйте Secure File Transfer Protocol (SFTP) для передачи файлов. SFTP шифрует данные и защищает целостность передаваемых данных. Удаление файла Возможно, вам придется время от времени удалять файлы, чтобы освободить место для хранения. Для этого выполните команду delete [/unreserved] [/force] filename. /unreserved указывает, что файл, подлежащий удалению, не может быть восстановлен. / force указывает, что для удаления указанного файла подтверждение не требуется. filename указывает имя файла, подлежащего удалению. Если параметр / unreserved не настроен, файл, подлежащий удалению, перемещается в корзину и может быть восстановлен с помощью команды undelete. Файл по-прежнему будет занимать место для хранения внутри корзины. Команда reset recycle-bin удаляет все файлы в корзине. После удаления файлов из корзины они не могут быть восстановлены. Чтобы окончательно удалить файл, например abcd.zip, выполните следующие операции: Настройка файла запуска системы Файлы запуска включают файл системного программного обеспечения и другие файлы, загруженные с внешнего запоминающего устройства в память для запуска устройства. Перед установкой следующего файла запуска выполните команду display startup, чтобы проверить файлы запуска, используемые для следующего запуска (next startup). Вывод команды показывает, что файл системного программного обеспечения software.cc будет использоваться для следующего запуска устройства. Команда startup system-software system-file устанавливает файл системного программного обеспечения для следующего запуска. system-file указывает файл. Чтобы использовать файл devicesoft.cc для следующего запуска, выполните следующую команду: Чтобы проверить, вступил ли этот параметр в силу, выполните команду display startup Вывод команды показывает, что файл системного программного обеспечения для следующего запуска был установлен в devicesoft.cc.
img
В данной статье мы постараемся разобрать, как создать, отследить и завершить процесс. Посмотрим следующие задачки: Запуск задачи в активном и фоновом режиме; Заставить задачу выполнятся после выхода из системы; Отслеживать и сортировать активные процессы; Завершать процессы; Постараемся разобрать следующие понятия: Fg (foreground) и bg (background); Nohup (no hang up); Ps - информация об активных процессах; Pstree - дерево процессов; Pgrep - поиск процессов; Pkill - завершение процессов; Top - диспетчер задач; Free - загрузка оперативной памяти; Uptime - время и полнота загрузки; Screen - управление сессиями. Начнем разбирать данную тему с простой команды. Команда sleep man sleep С помощью данной команды мы можем выставить задержку на определенное время, собственно, о чем и написано в справочной статье. Она обычно пригождается, когда необходимо выполнить какой-то скрипт и компьютер должен немного подождать. В частности, мы можем посмотреть следующий пример: sleep 1000 - после данной команды, мы можем вводить в консоль различные символы, они будут появляться на экране но машина и операционная система не будет реагировать. Для того чтобы прервать нажимаем ctrl + c сочетание клавиш. Когда набираем команду, она начинает работать в активном режиме и занимает консоль, и мы соответственно ничего не можем делать. Так как компьютер у нас сейчас много задачный, процессор многозадачный, операционная система многозадачная, мы можем запускать какие-то процессы в фоновом режиме. Для того, чтобы это сделать необходимо набрать команду и в конце поставить знак амперсанда "". Т.е. мы получим следующее sleep 1000. Как, только мы написали команду плюс амперсанд и нажали Enter. Мы видим появился один процесс, и он бежит в фоновом режиме. Есть такая команда jobs, она показывает выполняющиеся задачи, бегущие процессы. И вот мы видим, что у нас есть одна выполняющаяся задача sleep на 1000 секунд. Мы можем еще запустить один sleep 999. Практического эффекта нету, данный пример необходим для наглядности процессов. Появился еще один процесс с отличным от прошлого id. Итого у нас 2 процесса. Теперь представим, что нам необходимо поработать с сервером, но в настоящий момент необходимо обновить, например, репозиторий или пакеты. Мы запускаем процесс обновления с амперсандом и продолжаем работу в обычном режиме, консоль стандартного вывода у нас свободна. Но если нам необходимо вернутся к процессу, который бежит в фоне. Мы можем использовать команду fg и номер процесса, например, 1 или 2. Так же сданной командой мы можем использовать PID, т.е. уникальный идентификатор процесса. Таким образом мы можем видеть, что мы оказались внутри указанного процесса. Для выхода нажимаем ctrl+z. И теперь данная задача будет остановлена. В чем можно убедится, используя команду job. И соответственно, чтобы запустить процесс используем команду bg #процесса. Небольшой итог: Есть команда, показывающая процессы jobs. И команды fg и bg, которые позволяют отправить процессы в фоновый режим и вернуть обратно. Команда PS man ps Согласно описанию, данная команда показывает снапшот текущих процессов. У данной команды очень много ключей, но очень часть данная команда используется в таком виде ps aux. Это означает вывести результат по всем пользователям, все процессы, даже запущенные вне нашего терминала. Это помогает, когда у нас много пользовательская среда, или мы запустили от имени суперпользователя, а сами переключились на текущего. Выглядит данная картинка примерно так: На данной картинке мы можем увидеть от имени какого пользователя процессы выполняются. Это снимок процессов системы, статический снапшот. Он выполнен на тот момент, когда мы подали команду на терминал. Внизу на картинке, можно увидеть наши sleep, значит они на момент ввода команды бежали в фоновом режиме. Кроме того, мы можем запускать данную команду, через pipeline. Например: ps aux | grep sleep Команда grep - отсортировать. И в данном случае мы увидим только два наших процесса. Мы так же можем убить процессы. Процессы убиваются командой kill PID (т.е по его ID). Вот таким образом мы можем завершить процесс. Запустим еще несколько процессов. Теперь мы можем их завершить массово с использованием их сортировки killall sleep например. Мы можем увидеть, что процессы завершились. Данная команда может быть полезно при зависании какого ни будь приложения. Действие данной команды работает, только в пределах пользователя от которого данную команду запустили. Если выполнять данную команду от root. То данная команда завершит процессы у всех пользователей с именем sleep. Если мы создадим процесс, а затем выйдем из терминала (команда exit). Заходя обратно выполняя ps aux мы так же в фоне увидим, что процесс выполняется. А набрав jobs мы не увидим данный процесс. Это происходит потому, что команда jobs показывает только текущие процессы запущенные из данной консоли. Есть такой тонкий нюанс. Если мы запускаем в нашем сеансе процессы, бэкграунд или активный режим, при завершении сессии наши процессы завершаются. Получается следующее, при подключении к серверу, через ssh все наши процессы запущенные при обрыве сессии прервутся. Например, мы запустим процесс обновления системы и завершим нашу сессию процесс обновления прервется. Чтобы у нас процессы не завершались при выходе из системы пользователя, есть команда nohup. Используем ее. nohup sleep 10000 Во-первых, данная команда позволяет заменить стандартный вывод на вывод в файл и во -вторых команда будет выполнятся, пока будет запущенна операционная система. Вне зависимости от наличия пользователя в системе, который запустил. Есть достаточно много нюансов. Можно логинится, разлогиниватся и попадать в тот же сеанс, а в современных Ubuntu уже практически нет необходимости использовать данную команду. Но все же, чтобы гарантированно процесс работал необходимо использовать данную команду. Теперь можно посмотреть команду pstree. Данная команда позволяет посмотреть все процессы в иерархическом виде дерева. На картинке, четко виден родительский процесс systemd, который запускает все остальные процессы. Например sshd - подключение к серверу, которое запускает bash - интерпретатор, далее запускается sudo , su и pstree в самом конце. Есть еще интересные команды pgrep и pkill. Есть просто запустить pgrep то данная команда ничего не выдаст. А если в совокупности с ключами и названием процесса, то данная команда вернет идентификационный номер данного процесса. Мы так же можем добавить ключ -l, то команда вернет и название процессов. У нее много других ключей. Можно, например, команде сказать pgrep -u root -l, т.е показать все процессы пользователя root. Следовательно, команда pkill позволяет убить все эти процессы. Например: pkill sleep. Мы убили все процессы sleep. В реальной же ситуации, мы обычно используем команду top. Данная команда позволяет наблюдать и не только в режиме реального времени за процессами. Посмотрим на данные выводимые данной утилитой. Мы видим, что по умолчанию данная утилита сортирует по загрузке процессора. Мы можем перейти в режим помощи нажав клавишу "h". Ключей и опций у данной утилиты достаточно много. Можно воспользоваться клавишами """", для переключения сортировки, например на сортировку по загруженности оперативной памяти. В данной утилите мы можем сказать, что необходимо завершить той или иной процесс. Практически он аналогичен Диспетчеру задач в операционной системе windows. Для того, чтобы убить процесс нажимаем клавишу "k" и система ждет ввода PID процесса. По умолчанию он берет тот PID, который находится в самом верху. Т.е. по факту самый загружающий процесс систему. Если у нас, что-то висит, то достаточно удобно завершить такой процесс. После ввода PID система запросит, какой сигнал ей необходимо послать по умолчанию сигнал номер 15 или sigterm - т.е. сигнал завершения работы в мягком режиме. Если мы хотим использовать более жесткий вариант отправляем цифру 9, или sigkill. В таком случае операционная система, очень жестко потушит процесс наплевав на зависимые процессы от данного и те процессы от которых зависит данный процесс. Команда uptime man uptime Данная команда показывает, как долго у нас запущена система. Сам по себе эти данные нам ничего не дают. Данная команда. полезна в контексте, если нам передали сервера, и мы видим у них очень большой аптайм, следовательно, сервера не обновлялись и не перезагружались. Данная команда полезна помимо параметра сколько запущенна системаданная команда показывает общую загрузку системы. Это показывают три цифры в выводе данной команды. Там достаточно сложная формула по которой рассчитывается данный параметра, во внимание принимается загрузка ЦП, жестких дисков, оперативной памяти. Первая цифра - это загрузка в минуту, вторая цифра - это загрузка в последние пять минут и третья цифра - это загрузка в последние 15 минут. Исходя из последней картинки, цифры примерно одинаковые, а значит нагрузка равномерна. Если цифры скачут, значит необходимо анализировать, особенно если на сервере есть просадка по производительности. Команда free man free Данная команда показывает свободное и используемое количество памяти в системе. И в данном случае, так же, как и в windows task manager, под памятью понимается оперативная память, так и файл подкачки (windows), раздел подкачки (swap Linux). Swap раздел, это раздел системы используемый для ее нужд если системе не хватает оперативной памяти. Это раздел на жестком диске, который используется в качестве оперативной памяти. Но жесткий диск значительно медленней оперативной памяти, поэтому сначала заполняется оперативная память, а только потом используется раздел подкачки (swap). Команда screen man screen Она есть не во всех дистрибутивах по умолчанию. Эта команда, которая позволяет создать типа оконного менеджера. Это удобно, когда подключаешься по ssh и получаешь, как будто бы несколько окон в пределах одного терминала. Понятно, что современные ssh клиенты позволяют открыть сколько угодно вкладок и работать с ними параллельно. Запускаем screen. Переходим во внутрь screen, запускаем какую-нибудь команду, например, ping ya.ru. Далее нажимаем ctrl+a и затем d и получаем: Первая команда позволяет находится в текущем окне, а вторая клавиша d позволяет свернуть текущий скрин. Теперь можно закрывать терминал, вылогиниваться из консоли. Процесс запущенный в скрине будет работать. Для того, чтобы восстановить окно с процессом достаточно ввести screen -r и мы вернемся к бегущему процессу. Для того, чтобы завершить screen необходимо внутри ввести exit. Если у нас есть потребность запустить несколько окон, то можно это сделать следующим образом: Screen -S yandex ping ya.ru, screen -S rambler ping r0.ru Где yandex и rambler - это просто названия окон (alias) Просмотреть бегущие окна: screen - ls Чтобы вернутся к нужному окну вводим screen -r alias
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59