Админские угодья
1.47K subscribers
463 photos
40 videos
224 links
Всё для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
Производительность RDP в Windows Server и способы ее повышения

Эта статья актуальна для Windows Server 2019 в качестве сервера и Windows 10 в качестве клиента RDP. В статье мы рассмотрим шаги, которые следует предпринять для достижения максимальной производительности терминальных сессий RDP в Windows Server.

https://telegra.ph/Proizvoditelnost-RDP-v-Windows-Server-i-sposoby-ee-povysheniya-09-23
👍3
Основы мониторинга (обзор Prometheus и Grafana)

Мониторинг сегодня – фактически обязательная «часть программы» для компании любых размеров. В данной статье мы попробуем разобраться в многообразии программного обеспечения для мониторинга и рассмотрим подробнее одно из популярных решений – систему на основе Prometheus и Grafana

https://habr.com/ru/post/709204/
👍2
Ioping

Константин Хлебников разработал полезную утилиту ioping, позволяющую в стиле утилиты ping наблюдать за изменением отзывчивости системы ввода/вывода в Linux.

Установка в Debian 11
# apt install ioping

Поддерживаемые ОС
GNU/Linux, GNU/HURD, Windows, OS X, FreeBSD, DragonFlyBSD, OpenBSD

Пример выполнения:

$ ioping /home
4096 bytes from /home (ext4 /dev/sda5): request=1 time=0.4 ms
4096 bytes from /home (ext4 /dev/sda5): request=2 time=0.8 ms
4096 bytes from /home (ext4 /dev/sda5): request=3 time=0.9 ms
4096 bytes from /home (ext4 /dev/sda5): request=4 time=0.3 ms
4096 bytes from /home (ext4 /dev/sda5): request=5 time=0.2 ms
--- . ioping statistics ---
5 requests completed in 4266.5 ms
min/avg/max/mdev = 0.2/0.5/0.9/0.1 ms


https://github.com/koct9i/ioping
👍2
📌Совет по Linux

Если вы хотите определить, сколько времени займет выполнение определенной команды или скрипта, используйте команду time.

Вот синтаксис:

$ time <команда>.

Пример:
$ time find / -perm -u=s -type f &>/dev/null

Он также показывает использование системных ресурсов процесса, что делает его полезным инструментом для оценки эффективности конкретной команды.
👍4
Шпаргалка по безопасности сетей
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Как фильтровать вывод предыдущей команды и зачем нужен pipe |

Bash удобен тем, что позволяет передавать результаты одной команды в другую. Для этого используется символ | (pipe, канал, или конвейер).

Простой пример: нужно отфильтровать вывод лога nginx, чтобы отобразить только запросы к конкретному URL. Сначала используем команду cat для вывода содержимого файла, затем фильтруем нужные строки с помощью grep.


cat access.log | grep api/users
cat access.log | grep 02/Dec
cat access.log | grep api | grep 172.17.0.1
👍1
Haskell Dockerfile Linter

Интеллектуальный распаковщик Dockerfile, помогающий создавать лучшие образы Docker. Линтер разбирает Docker-файл на AST и выполняет правила поверх AST. Он опирается на поддержку ShellCheck для проверки Bash-кода внутри инструкций RUN.

https://github.com/hadolint/hadolint
Что в bash скрипте означает команда set -euo pipefail?

Команда set -euo pipefail в Bash-скрипте изменяет поведение интерпретатора и добавляет контроль ошибок, что делает сценарий более надежным.

1. -e: Завершает выполнение скрипта, если любая команда завершилась с ненулевым статусом (то есть произошла ошибка). Это предотвращает дальнейшее выполнение скрипта, если что-то пошло не так.

2. -u: Вызывает ошибку, если используется неинициализированная (неопределенная) переменная. Это помогает избежать ошибок, когда случайно обращаются к переменной, которая не была задана.

3. -o pipefail: Заставляет весь конвейер (|) завершиться с ошибкой, если любая команда в цепочке вернула ненулевой статус. По умолчанию в Bash статус конвейера определяется только последней командой, а pipefail изменяет это поведение. Если любая команда в конвейере завершится ошибкой, это будет считаться ошибкой всего конвейера.

Пример

set -euo pipefail

# Пример команды, использующей необъявленную переменную
echo $undefined_var # Это вызовет ошибку из-за опции -u


Таким образом, set -euo pipefail делает скрипт более устойчивым к ошибкам, помогая избежать неожиданных ситуаций и неявных ошибок.
👍31
Массивы bash

Если вы используете «стандартную» оболочку *NIX-системы, возможно, вы не знакомы с такой полезной особенностью bash как массивы. Хотя массивы в bash не так круты, как в P-языках (Perl, Python и PHP) и других языках программирования, они часто бывают полезны.
Bash-массивы имеют только численные индексы, но они не обязательны к использованию, то есть вы не должны определять значения всех индексов в явном виде.

https://habr.com/ru/articles/511608/
👍2
Срок действия учетной записи

Узнать срок действия учетной записи в ActiveDirectory можно через оснастку: Пользователи и компьютеры или с помощью команды Powershell. Во втором случае мы получим список всех учетных записей, у которых заканчивается срок действия.


Search-ADAccount -AccountExpiring -UsersOnly -TimeSpan 07.00:00:00 | Sort-Object -Descending AccountExpirationDate | ft Name, AccountExpirationDate

Устанавливаем TimeSpan на одну неделю и получаем список учетных записей срок действия которых закончится в течение одной недели (7 дней).
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Sampler. Визуализация для любой команды shell

Инструмент для выполнения команд shell, визуализации и оповещения. Настраивается с помощью простого файла YAML.

Установка Linux
sudo wget https://github.com/sqshq/sampler/releases/download/v1.1.0/sampler-1.1.0-linux-amd64 -O /usr/local/bin/sampler
sudo chmod +x /usr/local/bin/sampler

https://github.com/sqshq/sampler
❤‍🔥3
Простой и удобный шаблон для bash-скриптов выполняемых по расписанию

Хочу поделиться с сообществом простым и полезным шаблоном скрипта-обёртки на bash для запуска заданий по cron (а сейчас и systemd timers), который моя команда повсеместно использует много лет.

Сначала пара слов о том зачем это нужно, какие проблемы решает. С самого начала моей работы системным администратором linux, я обнаружил, что cron не очень удобный планировщик задач. При этом практически безальтернативный. Чем больше становился мой парк серверов и виртуальных машин, тем больше я получал абсолютно бесполезных почтовых сообщений "From: Cron Daemon". Задание завершилось с ошибкой - cron напишет об этом. Задание выполнено успешно, но напечатало что-нибудь в STDOUT/STDERR - cron всё равно напишет об этом. При этом даже нельзя отформатировать тему почтового сообщения для удобной автосортировки. Сначала были годы борьбы с использованием разных вариаций из > /dev/null, 2> /dev/null, > /dev/null 2>&1, | mail -E -s '<Subject>' root@. Потом я нашёл Cronic - обёртку на bash, которая скрывает вывод запускаемой задачи, если она завершена успешно. Стало полегче, но обнаружилось, что от некоторых заданий всё же лучше получать сообщение "Task OK", чтобы не столкнуться в самый неподходящий момент с тем, что выполнение задания тихо сломано месяц назад.

https://habr.com/ru/articles/778922/
👍2
Zenith - что-то вроде top или htop, но с диаграммами с возможностью масштабирования, использованием CPU, GPU, сети и диска.

Особенности
Дополнительные графики использования ЦП, памяти, сети и дисков
Быстрый просмотр свободного места на диске, IP-адресов сетевых карт, частоты процессора
Выделение основных пользователей ЦП, памяти и диска
Процент заряда батареи, время зарядки или разрядки, потребляемая мощность
Таблица процессов с возможностью фильтрации по типу верхней части, включающая использование диска каждым процессом
Изменение приоритета процесса
Представления диаграмм с возможностью масштабирования (с поддержкой прокрутки назад во времени)
Управление процессами с помощью сигналов
Сохранение данных о производительности между запусками
Метрики использования GPU для графических процессоров NVIDIA (с --features nvidia), включая использование GPU для каждого процесса
Графики свободного места на диске
Учет задержек (в Linux при запуске zenith с правами root)

Установка на дистрибутивы Linux на базе Debian/Ubuntu (64-бит)

sudo apt install curl
curl -sL https://raw.githubusercontent.com/wimpysworld/deb-get/main/deb-get | sudo -E bash -s install deb-get



https://github.com/bvaisvil/zenith
👍4
Media is too big
VIEW IN TELEGRAM
Файловые системы в линуксе | сравнительный тест файловых систем linux ext4 xfs f2fs btrfs zfs
Список полезных консольных команд VMWare ESXi (в том числе ESXCLI)

reboot — перезагрузить хост
poweroff — выключить хост
esxcli system version get — узнать версию (номер) инсталлированной версии VMware ESXi
uname -a — так же узнать версию VMware ESXi
vmware –vl – и еще один способ узнать версию и релиз VMware ESXi
esxcli hardware pci list | more — полная информация об установленных PCI устройствах
lspci — краткая информация обо всех установленных PCI устройствах
esxtop — диспетчер процессов top для vmware esxi (быстрые клавиши для переключения дисплея: c :cpu, i :interrupt, m :memory, n :network, d :disk adapter, u :disk device, v :disk VM, p :power mgmt)
vmkerrcode -l — расшифровка кодов ошибок
esxcfg-nics -l — информация о сетевых картах
esxcfg-vswitch -l — информация о виртуальных коммутаторах
find . -name libstorelib.so — найти файл libstorelib.so
dcui — работа с консолью сервера через ssh сессию
chkconfig -l — статус работы демонов
esxcli hardware memory get — размер установленной памяти
esxcli software vib list — список установленных vib-пакетов
esxcli network ip connection list — состояние активных соединений (аналог netstat)
esxcli storage vmfs extent list — информация о примонтированных/подключенных томах VMFS
esxcli hardware clock (get/set) — отображение/установка времени esxi-хоста
cd - Смена текущей директории;
cp - Копирование файла.cp [файл 1] [файл2];
find - Поиск файлов по критериям;
ls - Список файлов и директорий в текущей или явно указанной директории.ls /vmfs/volumes/ ключи: -l подробная информация -a отображение скрытых файлов;
mkdir — Создание директории;
mv — Перемещение файла. Переименование файла.mv [путь и имя файла] [путь, куда перемещать];
ps — Информация о запущенных процессах. ps -ef;
rm - Удаление файлов;
shutdown — Выключение или перезагрузка сервера shutdown nowshutdown –r now;
vi — Текстовый редактор;
nano — Дружелюбный к новичкам текстовый редактор, отсутствует на ESXi;
cat — Вывод содержимого файла на экран. cat /etc/hosts;
more — Вывод содержимого файла на экран, по странице за раз. more /etc/hosts;
man — Справка по командам man <команда, по которой есть вопрос>, для некоторых команд помощь выводится при запуске самой команды без параметров;
useradd — Создание пользователя. useradd <имя пользователя>;
passwd - Задание пароля пользователю passwd <имя пользователя>;
esxcli storage nfs list — список подключеных nfs- хранлилищ на хосте
esxcli software vib list — cписок установленных vib-пакетов
esxcli hardware memory get — информация об использовании памяти на хосте ESXi, включая общий объем
This media is not supported in your browser
VIEW IN TELEGRAM
Relax-and-Recover

Решение для аварийного восстановления и миграции систем на новое железо под управлением Linux (ср. mksysb,
ignite)

Relax-and-Recover создает загрузочный образ. Этот образ может переразметить систему. После этого запускается восстановление из резервной копии. Возможно восстановление на другое оборудование. Поэтому Relax-and-Recover можно использовать и как инструмент миграции.

В настоящее время Relax-and-Recover поддерживает различные загрузочные носители (включая ISO, PXE, ленту OBDR, USB или eSATA), разнообразные сетевые протоколы (включая sftp, ftp, http, nfs, cifs), а также множество стратегий резервного копирования (включая IBM TSM, CommVault, Micro Focus Data Protector, Symantec NetBackup, Bareos, Bacula, rsync, Borg).

Решение Relax-and-Recover было разработано для простой настройки, не требует обслуживания и готово прийти на помощь в случае бедствия. Его характер "установил и забыл" устраняет любые оправдания для отсутствия решения по аварийному восстановлению.

https://relax-and-recover.org/

https://github.com/rear/rear
👍1
PowerShell: используем Invoke-Command для запуска команд/скриптов на удаленных компьютерах

В этой статье мы рассмотрим особенности использования командлета Invoke-Command для удаленного выполнения команд и скриптов. Возможно запускать команды удаленно на одном компьютере, или параллельно на множестве компьютерах в вашей сети. Командлет Invoke-Command использует возможности удаленного управления, заложенные в PowerShell Remoting. PowerShell Remoting позволяет удаленно подключаться к PowerShell сессиям на компьютерах через службу WinRM (Windows Remote Management) через протокол Web Services for Management (WS-Management). Этот сервис дает возможность принимать команды Powershell и устанавливать сеансы.

https://telegra.ph/PowerShell-ispolzuem-Invoke-Command-dlya-zapuska-komandskriptov-na-udalennyh-kompyuterah-09-26
💯1
Утилита ncdu: быстрое решение для очистки диска

При переполнении диска серверов, ncdu — отличная альтернатива du и find. Она быстро показывает, какие файлы занимают место, и позволяет удалять их прямо в интерфейсе.

Простой запуск:
# cd /
# ncdu

Установка:

ubuntu: apt install ncdu
osx: brew install ncdu
centos: yum install ncdu
Media is too big
VIEW IN TELEGRAM
Mikrotik: Настройка основного и резервного провайдеров

Показываем как на роутере Mikrotik настроить подключение к двум провайдерам. Как настроить основной и резервный каналы подключения к интернет и управлять ими.
🔥2