По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Уровни выполнения (runlevel) Linux можно представить, как режим, в котором запускается система. Каждый из этих режимов обладают своими процессами, которые включены или выключены в зависимости от запущенного уровня выполнения. С момента загрузки Linux выполняется в одном из режимов, нельзя запускать систему в нескольких режимах, но есть возможность переключаться между уровнями во время работы на компьютере. Например, при запуске системы с графическим интерфейсом выполняется один уровень, а если запускать систему в режиме командной строки выполнится другой. Это происходит потому, что режиму GUI нужны доступы к тем процессам, в которых командная строка не нуждается. В зависимости от того, какие службы нужно включить, а какие выключить система меняет уровни выполнения. Почему важны уровни доступа Вы можете годами пользоваться системой Linux, даже не понимая разницу между уровнями доступа, так как эта опция не является часто конфигурируемой. Тем не менее уровни выполнения Linux дают администраторам повышенный контроль над системой. Режим, в котором работает система, может быть изменен (как это сделать будет показано далее), как и сервисы, которые выполняются в этом режиме. Это позволяет нам полностью контролировать, к каким службам система будет иметь доступ в данный момент. Сколько уровней выполнения существует? В системе Linux есть семь уровней выполнения, которые нумеруются от 0 до 6. Разные дистрибутивы по-разному используют уровни выполнения, так что очень сложно составить список задач, которые выполняет конкретный уровень. Зато вы сами можете посмотреть какие задачи выполняют уровни доступа вашего дистрибутива. Ниже приведён список уровней выполнения и основных задач, выполняемых ими. Runlevel 0 завершает работу системы Runlevel 1 однопользовательский режим работы. Чаще всего используется в целях обслуживания и выполнения других административных задач. Это уровень также может называться runlevel S, где S означает single-user. Если вам когда-то приходилось сбрасывать пароль на Linux, то вы вероятно уже пользовались этим режимом. Runlevel 2 многопользовательский режим работы без поддержки сетевых служб (демонов). Runlevel 3 многопользовательский режим с поддержкой сети, но без графического интерфейса. Чаще всего серверные версии Linux работают именно на этом уровне выполнения. Runlevel 4 не используется. Пользователь может настраивать этот уровень исходя из его целей. О том, как это сделать также будет рассказано далее. Runlevel 5 этот режим схож с уровнем 3, но тут еще запускается графический интерфейс. В этом режиме работают десктопные версии Linux. Runlevel 6 этот уровень перезагружает систему. Как узнать текущий режим работы? Чтобы узнать текущий уровень выполнения достаточно ввести команду runlevel в командной строке. На выводе этой команды две цифры. Первая указывает на предыдущий режим работы, а второй на текущий. На скриншоте вместо первой цифры указана буква N, что значит система изначально запускалась и работает в 5 режиме, о чём говорит вторая цифра 5. Как менять уровень выполнения? Текущий уровень выполнения можно менять командой "telinit". Ниже приведён пример смены уровня выполнения на CentOS. $ telinit 3 Следует отметить, что эта операция требует прав привилегированного пользователя. Имейте ввиду, что на системах семейства Debian уровни выполнения работают по-другому. Например, Ubuntu в режиме командой строки запускается с уровнем выполнения 5. После выполнения команды указанной выше, ваш экран может стать пустым. Это потому, что вы остались на пустом терминале, чтобы вернутся на рабочий терминал нажмите комбинацию клавиш Alt+F1. Если запустить команду runlevel еще раз, то мы увидим, что текущий уровень выполнения 3, а предыдущий 5. Linux system против runlevels В последние годы systemd сменила многолетнюю систему уровней доступа (System V init). Фактически он работает по тому же принципу, но использует новые команды, которые в целом используют "runlevel" как "target". Runlevel 0 = poweroff.target (runlevel0.target) Runlevel 1 = rescue.target (runlevel1.target) Runlevel 2 = multi-user.target (runlevel2.target) Runlevel 3 = multi-user.target (runlevel3.target) Runlevel 4 = multi-user.target (runlevel4.target) Runlevel 5 = graphical.target (runlevel5.target) Runlevel 6 = reboot.target (runlevel6.target) По ходу статьи мы изучим systemd и его команды. Как поменять уровень выполнения по умолчанию? Может быть очень много причин для того чтобы загружаться с другим уровнем выполнения. Например, системные администраторы в основном используют систему в режиме командой строки, включая графический интерфейс только в случае необходимости. Именно для таких случаев нужно убедиться, что уровень выполнения по умолчанию 3, а не 5. В прошлом для этого приходилось редактировать файл /etc/inittab. Вы еще можете увидеть эту практику на некоторых системах. Если вы работаете с ОС, которые давно не обновляются до новых версий, этот путь будет приемлемым. $ vi /etc/inittab На скриншоте уровнем выполнения по умолчанию установлен 5. Но большинство систем Linux отказались от файла /etc/inittab в пользу systemd targets и мы рассмотрим разницу между ними по ходу статьи. Вы можете не найти в своей системе файл /etc/inittab или же файл inittab выведет вам сообщение с советом использовать systemd. Чтобы проверить текущий уровень выполнения по умолчанию введите команду $ systemctl get-default Система вернула нам "graphical.target". Как вы наверное и догадались, это не что иное, как уровень выполнения 5. Чтобы просмотреть остальные "target" и уровни выполнения, ассоциированные с ними введите команду: $ ls -l /lib/systemd/system/runlevel* Символьные ссылки указывают на то, что systemd работают так же как и runlevel. Итак, что необходимо сделать, чтобы поменять уровень выполнения по умолчанию? Для этого достаточно создать новую символьную ссылку на интересующую нас цель systemd. $ ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target Данной командой мы поменяли режим запуска системы по умолчанию с уровня выполнения 5, на 3 и при следующей загрузке система выполнить именно этот уровень. Ключ f указывает на то, что перед созданием новой символьной ссылки целевой файл должен быть удален. Это же самое могли бы сделать командой rm. Чтобы проверит успешно ли применились изменения достаточно повторно ввести команду "systemctl get-default". Разница между уровнями выполнения 3 и 5 Самыми часто используемыми уровнями выполнения являются уровни 3 и 5. В целом их разница сводится к тому, что 3 это режим командной строки, а 5 режим графического интерфейса. Конечно, не во всех дистрибутивах выполняется это условие или же ваша система может быть сконфигурирована так, что эти два уровня имеют больше отличий. Дальше мы рассмотрим, как узнать, какие процессы задействованы для того или иного уровня. Просмотр список служб конкретного уровня Чтобы просмотреть список служб, доступных для каждого уровня до недавнего времени использовалась команда "chkconfig -list". Если у вас стоит одна из последний версий, системы, то вероятно вы получите ошибку, как на скриншоте ниже: Чтобы проверить, какие службы запускаются во время загрузки системы в режиме графического интерфейса (уровень выполнения 5 для семейства RedHat), нужно запустить следующую команду: $ systemctl list-dependencies graphical.target Чтобы просмотреть список доступных служб другого уровня, просто замените "graphical.target" на нужную. Под каким уровнем работает процесс Если нужно посмотреть по каким уровнем выполнения запущена та или иная служба, можно ввести команду: $ systemctl show -p WantedBy [name of service] Например, чтобы посмотреть какой runlevel использует служба sshd, введите команду: $ systemctl show -p WantedBy sshd.service Судя по скриншоту выше, служба sshd запушена под уровнями 2,3 и 4 (multi-user.target) Меняем уровень запуска приложения Как было показано выше, демон SSH запущена только на уровнях 2-4. Что если нам нужно, чтобы он работал ещё и на уровне 5? Для этого нужно ввести следующее изменение: $ systemctl enable sshd.service Проблемы безопасности с уровнями доступа Linux Как было сказано ранее, уровни доступа дают администраторам возможность управлять службами, которые работают в определённых случаях. Такая возможность детального контроля повышает безопасность системы, так как системный администратор может быть уверен, что не запущена ни одна сторонняя служба. Проблема возникает, когда администратор не знает точно какие службы запущены и, следовательно, не может принять меры по уменьшению площади атаки. Используя методы из данного руководства, вы можете настроить уровень выполнения по умолчанию и контролировать запущенные приложения. Это, конечно, не уменьшит нагрузку на системные ресурсы, но сервер будет более защищен. Помните, что надо запускать тот уровень, который вам необходим. Нет смысла запускать систему в графическом режиме, если планируете работать там режиме командной строки. Каждый уровень выполнения запускает новые службы, большинство из которых работают в фоновом режиме, и вы можете забыть обезопасить их. Какой уровень выполнения выбрать? Выбор режима запуска системы полностью зависит от ситуации. В основном используется один из двух режимов: либо runlevel 3, либо runlevel 5. Если вам удобно работать с командной строкой и вам не нужен графический интерфейс, то уровень выполнения 3 самый подходящий. Это предотвратит запуск ненужных служб. С другой стороны, если вам хочется работать в десктопном режиме или же вам нужна графическая оболочка для работы какой-то программы, то выберите уровень 5. Если же нужно запустить систему в режиме обслуживания, то выбирайте уровень 1. В этом режиме в системе будете только вы, так как сетевые службы даже не запущены. Это позволит выполнить обслуживания без сбоя. В редких случаях появляется необходимость использовать уровень выполнения 4. Это может быть только в том случае, если администратору нужен уровень выполнения для особых задач. Как вы уже, наверное, заметили, мы не может запускать систему с уровнем 0 и 6, но можно переключаться на них если нужно выключить или перезагрузить систему. Но в этом нет особой необходимости, так как есть команды, которые выполняют эти операции. Можно ли создано новый уровень на Linux? Так как система Linux это система бесконечных возможностей, то и создание нового уровня не исключение. Но очень маловероятно, что вам когда-нибудь понадобится это. Но если вы все-таки решили создать новый уровень, то следует начать с копирования существующего уровня и изменения её под свои задачи. Целевые уровни расположены по следующему пути: /usr/lib/systemd/system Если хотите создать свой уровень на основе 5-го уровня выполнения, скопируйте искомую директорию в новую: $ cp /usr/lib/systemd/system/graphical.target /usr/lib/systemd/system/mynew.target Затем в новой директории создайте поддиректорую "wants": $ mkdir /etc/systemd/system/mynew.target.wants Затем просто создайте символьную ссылку на дополнительные службы в директории /usr/lib/systemd/system, которые необходимы вашему уровню.
img
Когда сервер Windows работает в течение длительного периода времени, приложения и функции операционной системы могут работать нестабильно. Нестабильная операционная система может иметь сбои приложений, зависание приложений или утечки памяти. Иногда даже важные системные функции перестают отвечать. Простым решением является перезагрузка. В этом руководстве вы узнаете, как перезапустить Windows Server 2016 с несколькими параметрами команды. Перезагрузить Windows Server через графический интерфейс Интерфейс Windows Server 2016 представляет собой графический интерфейс, который упрощает многие задачи. Нажмите: меню Пуск -> Кнопка питания -> Перезагрузить. Как перезагрузить Windows Server с помощью командной строки В некоторых случаях у вас может не быть установлен компонент GUI. Или ваша операционная система столкнулась с проблемой, и все, что вы можете получить доступ, это командная строка. Шаг 1: Откройте командную строку Нажмите Ctrl + Alt + Del. Система должна показать меню - щелкните Task Manager (Диспетчер задач). В окне Task Manager (Диспетчер задач) нажмите More Details (Подробнее). Откройте меню File (Файл) и выберите Run new task (Запустить новое задание). В поле введите cmd.exe–, затем установите флажок, чтобы создать задачу с правами администратора. Нажмите ОК. Должно появиться черное окно с белым текстом. Шаг 2. Перезагрузите операционную систему Windows Server. В окне командной строки введите команду перезагрузки Windows Server и нажмите клавишу Enter: shutdown –r Параметр –r заставляет Windows перезагружаться, а не просто выключаться. Перезапуск из PowerShell Windows PowerShell напоминает расширенную версию командной строки. Он основан на .NET Framework и включает язык сценариев. PowerShell полезен для работы под операционной системой Windows. Шаг 1. Запустите PowerShell Нажмите Ctrl + Alt + Del и выберите Task Manager (Диспетчер задач). Откройте меню File (Файл) и выберите Run new task (Запустить новое задание). В командной строке введите powershell.exe и установите флажок, чтобы начать с правами администратора. Нажмите ОК. Должно открыться новое окно с темно-синим фоном. Вы можете понять, что находитесь в окне PowerShell, если подсказка начинается с PS. Шаг 2: перезагрузите систему В окне PowerShell введите следующую команду и нажмите Enter: Restart-Computer По умолчанию вы получите 5-секундный обратный отсчет, затем система перезагрузится. Вы можете добавить опцию, чтобы отложить перезапуск на более чем 5 секунд по умолчанию: Restart-Computer –delay 15 Перезагрузка удаленного сервера Windows с помощью PowerShell Шаг 1. Запустите PowerShell Если вы находитесь в командной строке, введите команду: PowerShell Подсказка добавит PS в начале, и ваши набранные команды должны появиться в желтом цвете. Шаг 2. Перезагрузитесь удаленно В окне PowerShell введите следующее: Restart-Computer –ComputerName “NAME_OF_SYSTEM” Замените NAME_OF_SYSTEM на имя компьютера, который вы хотите перезагрузить. Не забудьте поставить кавычки. Примечание. Предполагается, что ваши текущие учетные данные те же, что и для удаленной системы. Обычно это может выглядеть как имя пользователя администратора, и один и тот же пароль для обеих систем. Это также может работать, если обе системы находятся в одном домене, а ваша учетная запись пользователя имеет соответствующие разрешения.
img
Если PowerShell кажется вам сложным для использования его для повседневных задач, "круто" может быть не тем словом, которое у вас ассоциируете с ним. Но PowerShell является основной частью Exchange, Windows Server и SQL Server, и он обладает огромными возможностями, которые мы все должны понять, принять и использовать, чтобы облегчить и автоматизировать наши текущие дела. Я собираюсь немного поразвлечься и показать вам несколько хитростей, которые определенно пригодятся вам в решении нудных задач на работе. Кроме того, вы будете выглядеть намного круче в глазах ваших коллег, когда сможете решить проблему из командной строки. Согласитесь, это выглядит привлекательно, чем щелкать правой кнопкой мыши и что-то исправлять. Будьте очень осторожны так как это инструмент достойный своего названия (Power – Сила, Shell – Оболочка). PowerShell может легко вызвать массовые изменения конфигурации, как положительные, так и отрицательные, поэтому для безопасности создайте тестовую или лучше всего виртуальную среду для вашего обучения и тестирования. Если вы будете тестировать у себя на компьютере, то создайте точку восстановления системы. Чтобы во время выполнения одной из следующих команд что-то пойдет не так, вы всегда могли восстановить свой компьютер. 10 крутых вещей, которые можно сделать с помощью Windows PowerShell 1: Отчёты о подключённых USB оборудованиях PowerShell даёт возможность работать с Windows Management Instrumentation (WMI). С помощью PowerShell, вы можете сделать WMI - запрос для получения информации о USB - устройствах, которые установлены как на локальной, так и на удаленных системах. gwmi Win32_USBControllerDevice -computername DBSERVER1 |fl Antecedent,Dependent В данной команде будет применен фильтр возврата предшествующих и зависимых полей с компьютера DBSERVER1. Если вы хотите получить полную информацию о USB-устройствах в системе, вы можете убрать оператор | и fl. Это весьма удобный способ для ведения отчётов по серверам, к которым подключены USB - устройства с лицензией. 2: Выполнение ваших любимых задач CMD в PowerShell Да, вы можете перестать использовать командную строку (CMD) и начать выполнять все те же задачи в PowerShell. Это поможет сделать процесс обучение немного проще и помочь вам лучше ознакомиться с интерфейсом. К сожалению, PowerShell невозможно вызвать через окно «выполнить» с помощью трёх букв, подобно CMD. Но вы можете назначить сочетание клавиш для быстрого запуска PowerShell, например, Ctrl + Shift + P. 3: Принудительное завершение процесса в PowerShell Если зависла какая-то служба Windows, вы можете использовать PowerShell для завершения процесса так же, как и через Диспетчер Задач. Например, для закрытия BadThread.exe, вы делаете следующее: get-process BadTh* Результаты выведут нам нужные данные в таком формате: Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 19 5 -321955 -312219 -154 32.76 7583 BadThread После того, как мы идентифицируем Process ID, вы можете принудительно закрыть зависший процесс введя команду: stop-process -id 7583 В тот же момент процесс BadThread будет принудительно остановлен, и вы сможете возобновить попытку запуска службы. Которую можете сделать прямо здесь, в PowerShell. 4: Используйте PSDrive для большего, чем просто просмотр дисков Команда PSDrive позволяет просматривать объекты Windows за пределами традиционных сетей, а также локальных или съемных дисков. Например, чтобы посмотреть диски в разделе верхнего уровня реестра HKEY_LOCAL_MACHINE, вы можете использовать HKLM PSDrive. Чтобы войти в реестр, введите следующую команду: PS C:> cd HKLM: PS HKLM:/> Затем вы переключаетесь в раздел регистра где сможете просмотреть список всех объектов и удалять их, если вам это нужно. 5: Экспорт NTFS разрешений папки – как обычно, так и рекурсивно Управление разрешениями NTFS - это отдельный вопрос, но с помощью PowerShell можно экспортировать список разрешений для аудита доступов или для быстрого анализа списка ACLs для настройки политик безопасности. Это лучший вариант для создания отчётности в формате периодически запускаемого скрипта, или вы можете запускать его по требованию, например, для диагностики конкретной проблемы, связанной с доступами. Например, используя следующую команду: PS E:>Get-Acl N:Data Это даст вам быстрый ответ с результатами ваших прав безопасности по указанному пути N:Data (обратите внимание, что команда не даёт доступ к ресурсу). Данная команда не даст нам общую картину всех доступов всего пути, а только отчёт только об указанном пути. Но если вы хотите включить рекурсию для всего пути, вы можете использовать другую команду. Для того же пути N:Data вы должны использовать командлет Get-ChildItem (cmdlet) в PowerShell в сочетании с командлетом Get-Acl. Рассмотрим следующий пример: PS E:>Get-ChildItem N:Data -recurse | Get-Acl Данная команда будет отображать списки ACL для содержимого всего пути N:Data. Разберём как это работает: командлет Get-ChildItem показывает нам все объекты файловой системы по указанному пути N:Data, а дальше весь список объектов передаётся командлету Get-Acl который предоставляет результаты (списки ACL) для каждого объекта. Если вы хотите заархивировать данные в документ (CSV), вам нужно добавить | export-csv c:filename.csv в конце команды. Кроме этого вы можете извлечь в обычный текстовый файл с помощью добавления командлета > C:filename.txt. Обратите внимание что, когда вы используете параметр -recurse, он будет применяться во всех вложенных файлах и папках. Поэтому будьте внимательны, когда используете его для инвентаризации объёмных томов или же по сети. 6: Отличия PowerShell 2.0 PowerShell 2.0 включает в себя графический интерфейс что является удобной особенностью данной системы. Скрипты PowerShell сохраняются как файлы .ps1, что позволяет нам легко изменять, импортировать и мигрировать сценарии в различные системы. На скриншоте ниже показан пример списка разрешений NTFS в графическом режиме. Примечание для PowerShell 2.0: Перед тем как начать использовать PowerShell 2.0 версию, необходимо настроить политику исполнения с помощью первой версии PowerShell. Введите одну из следующих команд для настройки политики исполнения под ваши нужды: PS C:> Set-ExecutionPolicy Restricted (только проверка) PS C:> Set-ExecutionPolicy AllSigned (наиболее безопасный) PS C:> Set-ExecutionPolicy RemoteSigned (средний уровень безопасности) PS C:> Set-ExecutionPolicy Unrestricted (наименее безопасный) При этом не забудьте, что для PowerShell 2.0 требуется пакет WS-MAN v1.1 и Microsoft.NET Framework 3.0 для графического интерфейса. 7: Горячие клавиши в графическом интерфейсе PowerShell Если вы знакомы со средой Microsoft SQL Query Analyzer, вы по достоинству оцените некоторые из этих сочетаний клавиш. В PowerShell GUI вы можете выбрать одну или несколько строк и выполнить их разом одним нажатием клавиши F5. Кроме того, если вы изменили скрипт, то для экономии времени при редактировании и тестировании доступны привычные Ctrl + S для сохранения, Ctrl + Z для отмены, Ctrl + C для копирования и Ctrl + V для вставки. 8: Фоновый режим для длительных задачи Если вы собираетесь использовать команду, выполнение которого займёт некоторое время, вы можете запустить PowerShell в фоновом режиме до её завершения. Таким образом, можно отправить серию команд на автоматическое выполнение по своему собственному расписанию. Чтобы запустить команду в фоновом режиме необходимо добавить в начало параметр –psjob. А ещё можно узнать о состоянии любого из заданий с помощью следующей команды: PS C:> get-psjob В дополнительном окне вы увидите таблицу с результатами о текущих состояний ваших заданий, дополнительно с уникальными идентификаторами сеанса для каждой задачи отдельно. На скриншоте ниже показана одна проваленная задача. С помощью следующей команды вы можете удалить неудачную задачу, указав ID Session в конце команды: PS C:>remove-psjob 9 9: Вставка временных рамок для вывода команд PowerShell Для задач PowerShell можно ввести временную метку последовательности, чтобы определить продолжительность каждого шага, к тому же можно использовать для настройки журнала вводимых скриптов. Это может оказаться удобным способом для их тестирования. Чтобы вставить метку времени, введите одну из следующих команд в виде одно строки в файле .ps1: КомандыВывод"$(Get-Date -format g) Start logging"20/4/2020 7:45 AM"$(Get-Date -format F) Start logging"Friday, December 23, 2019 8:26:24 AM“$(Get-Date -format o) Start logging"2019-11-17T19:26:24.0479860-06:00 Существует много различных форматов команды Get-Date, но обычно эти три параметра подходят для большинства целей с временными метками. 10: Вывод результатов с задержкой В PowerShell некоторые команды выводят информацию на экран быстрым прокручиванием. Если вы не экспортируете данные в файл, будет невозможно просмотреть их на экране. Давайте ещё раз воспользуемся командлетом Get-ChildItem из предыдущих примеров. Эта команда может выводить множество результатов в зависимости от указанного пути. Для упрощения просмотра выводимых данных на экране мы воспользуемся функцией, которая называется EasyView. Данная функция позволяет нам просмотреть результаты на экране путем отображения одной строки каждые полсекунды. Функция EasyView создаётся следующим образом: function EasyView { process { $_; Start-Sleep -seconds .5}} Чтобы выполнить команду PowerShell с помощью функции EasyView добавьте в конце команды оператор | и название самой функции, как показано ниже: Get-ChildItem N:Data | EasyView Функция EasyView настроена на отображение строк с интервалом в полсекунды. Вы также можете настроить интервал в миллисекундах. Итоги Крутые особенности на этих 10 пунктах не заканчиваются. Есть множества функций PowerShell, которые могут упростить ваши ежедневные задачи. Я надеюсь эта статья привлечёт ваше внимание к командной строке и поможет вам в будущем использовать PowerShell.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59