Типичный Сисадмин
1.25K subscribers
369 photos
43 videos
202 links
⚙️Информация для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
Основные команды PowerShell

1. Основные команды управления системой:
- Get-Help: Получение справки о командах. Например, Get-Help Get-Process показывает справку о команде Get-Process.
- Get-Command: Показать список всех доступных команд или команд, связанных с определённой задачей. Пример: Get-Command *process*.
- Get-Service: Показать все службы, установленные на системе.
- Start-Service: Запустить службу. Пример: Start-Service -Name "wuauserv".
- Stop-Service: Остановить службу.
- Restart-Service: Перезапустить службу.

2. Работа с файлами и каталогами:
- Get-ChildItem: Просмотреть файлы и каталоги (аналог команды dir или ls`). Пример: `Get-ChildItem C:\.
- Set-Location: Перейти в другой каталог (аналог cd`). Пример: `Set-Location C:\Users.
- Copy-Item: Копировать файл или папку. Пример: Copy-Item C:\source.txt C:\destination.txt.
- Move-Item: Переместить файл или папку. Пример: Move-Item C:\file.txt C:\archive\file.txt.
- Remove-Item: Удалить файл или папку. Пример: Remove-Item C:\file.txt.
- New-Item: Создать новый файл или каталог. Пример: New-Item -Path C:\ -Name "file.txt" -ItemType "file".

3. Информация о системе и процессах:
- Get-Process: Показать список всех запущенных процессов.
- Stop-Process: Остановить процесс. Пример: Stop-Process -Name "notepad".
- Get-EventLog: Просмотр журналов событий (Event Logs). Пример: Get-EventLog -LogName Application.
- Get-WmiObject: Получить информацию о системе, например, о процессоре или установленной ОС. Пример: Get-WmiObject Win32_OperatingSystem.

4. Работа с пользователями и группами:
- Get-LocalUser: Показать всех локальных пользователей.
- New-LocalUser: Создать нового локального пользователя. Пример: New-LocalUser -Name "TestUser" -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force).
- Remove-LocalUser: Удалить локального пользователя.
- Add-LocalGroupMember: Добавить пользователя в локальную группу. Пример: Add-LocalGroupMember -Group "Administrators" -Member "TestUser".

5. Работа с переменными и данными:
- Set-Variable: Установить переменную. Пример: Set-Variable -Name "MyVar" -Value "Hello".
- Get-Variable: Показать значения переменных.
- Remove-Variable: Удалить переменную.
- Export-Csv: Экспорт данных в CSV-файл. Пример: Get-Process | Export-Csv -Path "C:\processes.csv".
- Import-Csv: Импорт данных из CSV-файла. Пример: Import-Csv -Path "C:\processes.csv".

6. Потоки данных и конвейеры:
- | (Pipeline): Передача данных от одной команды к другой. Пример: Get-Process | Where-Object { $_.CPU -gt 100 } — вывести процессы, которые используют больше 100 единиц процессорного времени.
- Out-File: Записать результат команды в файл. Пример: Get-Process | Out-File -FilePath "C:\processes.txt".
- Select-Object: Выбор определённых полей. Пример: Get-Process | Select-Object -Property Name, CPU.

7. Сетевые команды:
- Test-Connection: Проверить доступность компьютера (аналог команды ping`). Пример: `Test-Connection google.com.
- Get-NetIPAddress: Показать список всех IP-адресов на машине.
- Get-NetAdapter: Показать информацию о сетевых адаптерах.

8. Скрипты и автоматизация:
- Invoke-Command: Выполнить команду на удалённой системе. Пример: Invoke-Command -ComputerName "Server1" -ScriptBlock { Get-Process }.
- Start-Job: Запустить задачу в фоне. Пример: Start-Job -ScriptBlock { Get-Process }.
- Get-Job: Показать статус фоновых задач.
- Receive-Job: Получить результат выполнения фоновой задачи.

9. Обновления и безопасность:
- Install-Module: Установка PowerShell-модулей. Пример: Install-Module -Name "PSWindowsUpdate".
- Update-Module: Обновление установленных модулей.

10. Дополнительные команды:
- Clear-Host (или `cls`): Очистить экран.
- Exit: Выйти из сеанса PowerShell.
- Measure-Object: Подсчитать количество объектов, или сумму значений. Пример: Get-ChildItem | Measure-Object.
👍2
Увеличение времени сессии SSH

Бывает, что выполнение удаленно запущенной команды может затянуться, а необходимо дождаться ее выполнения (кстати, в этом случае весьма полезным может стать использование screen), или пришлось отвлечься, а сессия SSH в это время отвалилась. У меня на работе подобное случалось часто, поэтому решил увеличить на сервере таймаут сессии ssh, чтобы сохранить и соединение, и собственные нервы.

На сервере в конфигурационном файле /etc/ssh/sshd_config прописываем:
TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 60


TCPKeepAlive — установлен в «yes», значит сервер будет периодически пинговать клиента, проверяя жив ли он.
ClientAliveInterval — задает интервал пинга для проверки состояния клиента (в секундах). Параметр работает только для протокола версии 2 (Protocol 2).
ClientAliveCountMax — количество пингов клиента.
Таким образом в моем примере таймаут сессии будет равен 60*300/60 = 300 минут = 5 часов.
После изменения настроек не забудьте перезапустить сервис ssh.
👍3
Выводим список установленных пакетов в Linux по дате

Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся!

https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
👍3
Полезные команды Linux. Атрибуты файлов

# chattr +a file
Разрешает только добавление данных в файл
# chattr +d file
Игнорировать данный файл при создании резервной копии с помощью программы dump
# chattr +c file
Разрешить ядру автоматически сжимать/разжимать содержимое файла
# chattr +i file1
Защита файла от каких либо изменений или манипуляций: редактирование, перемещение, удаление, создание ссылок на него
# chattr +S file1
Определяет, будет-ли при сохранении изменений, произведена синхронизация, как при использовании команды sync
# chattr +u file1
При удалении файла с данным атрибутом, его будет сохранено, что-бы оставить пользователю возможность восстановить данные в случае необходимости
# chattr +s file1
Позволяет безвозвратное удаление данного файла. При удалении файла с этим атрибутом, место на диске, занимаемое файлом, перезаписывается нулями, после чего файл уже не подлежит восстановлению
# lsattr
Листинг файлов с атрибутами
👍2
Подборка Linux утилит для системного администратора

Nezha - Легкий и элегантный аналог Zabbix
Plow - Этот инструмент был разработан для проведения нагрузочного тестирования HTTP
Hunt - Утилита для поиска файлов на локальном компьютере
AutoRegex - Регулярные выражения — это мощный инструмент для преобразования текстовых данных.
ContainerSSH - Утилита, которая позволяет вам незаметно направлять SSH-клиентов в изолированные контейнеры
Krunvm - Это инструмент, который позволяет создавать простые виртуальные машины на основе образов OCI.
Zellij - Это интересный мультиплексор, который может быть использован в качестве альтернативы tmux

https://bookflow.ru/podborka-linux-utilit-dlya-sistemnogo-administratora/
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Как удалить файлы в системах Linux или UNIX с помощью команды rm

Как удалить файлы в операционной системе Linux / UNIX / * BSD / AIX / HP-UX с помощью параметров командной строки?

Чтобы удалить или удалить файл или папку в операционной системе Linux, FreeBSD, Solaris, macOS или Unix, используйте команду rm или команду unlink. На этой странице объясняется, как удалить определенный файл в Linux или Unix-подобной системе с помощью параметра командной строки.

https://telegra.ph/Kak-udalit-fajly-v-sistemah-Linux-ili-UNIX-s-pomoshchyu-komandy-rm-10-15
👍2
Шпаргалка по безопасности сетей
2
Шифрование для облака: разные подходы

Облачные сервисы по-разному подходят к шифрованию данных на своём хостинге. В некоторых случаях это шифрование не удовлетворяет требованиям безопасности, поэтому приходится брать задачу в свои руки и шифровать файлы самостоятельно.

https://habr.com/ru/companies/ruvds/articles/846478/
👍2
Настройка сети с помощью PowerShell (IP адрес, DNS, шлюз, маршруты)

В этой статье мы рассмотрим особенности настройки параметров сетевых адаптеров в Windows из PowerShell. Посмотрим, как узнать и назначить статический IP адрес, DNS сервера, или настроить сетевой интерфейс на получение конфигурации IP от DHCP сервера. Вы можете использовать эти командлеты для настройки сети в Сore/Nano версиях Windows Server, в Hyper-V Server, изменения настроек IP на удаленных компьютерах или по сети серверах или в PS скриптах.

https://telegra.ph/Nastrojka-seti-s-pomoshchyu-PowerShell-IP-adres-DNS-shlyuz-marshruty-10-09
2
Технологический стек Netflix - CI/CD Pipeline


Эта статья основана на материалах многих инженерных блогов Netflix и проектов с открытым исходным кодом.

Планирование: Netflix Engineering использует JIRA для планирования и Confluence для документирования.

Код: Java - основной язык программирования для сервисов бэкенда, другие языки используются для различных задач.

Сборка: Для сборки в основном используется Gradle, а для поддержки различных вариантов использования создаются плагины Gradle.

Упаковка: Пакет и зависимости упаковываются в машинный образ Amazon (AMI) для выпуска.

Тестирование: Тестирование подчеркивает ориентацию продакшен-культуры на создание хаос-инструментов.

Развертывание: Для развертывания Netflix использует самостоятельно созданный Spinnaker.

Мониторинг: Метрики мониторинга централизованы в Atlas, а для выявления аномалий используется Kayenta.

Отчет об инцидентах: Инциденты рассылаются в соответствии с приоритетом, а для их обработки используется PagerDuty.
👍1
Media is too big
VIEW IN TELEGRAM
Настройка нескольких внешних IP адресов на MikroTik

источник
1
Как заставить пользователя изменить пароль при следующем входе в систему

Существует несколько способов.

Использование команды passwd
sudo passwd --expire [username]

Использование команды chage
sudo chage --lastday 0 [username]

Срок действия паролей
chage -l
Будет выведена следующая информация:
Когда пароль был последний раз изменен;
Дата окончания действия пароля;
Сколько дней осталось до окончания действия пароля;
Когда учетная запись пользователя будет закончена (можно, пожалуйста, далее мы будем говорить «заэкспайрится»?)
Минимальное количество дней между итерацией смены пароля;
Максимальное количество дней между итерацией смены пароля;

Заставляем пользователя менять пароль каждые 90 дней
sudo chage -M 90

Задаем срок жизни учетной записи (до 12 июня 2023)
sudo chage -E 2023-06-12 serg
sudo chage -E 2023-06-12 oleg


Сколько времени на смену пароля?
В примере даем Борису 10 дней на смену пароля с момента как пароль заэкспайрился
sudo chage -I 10 boris

Уведомление о смене пароля заранее
Через 25 дней истекает срок годности пароля Бориса
sudo chage -W 25 boris

Защищаемся от частой смены паролей пользователя
Минимальное количество дней между сменой паролей
sudo chage -m 25 boris

Удалить ограничение в днях
sudo chage -m 0 sergey