Системный Администратор (Сисадмин)
13.9K subscribers
1.7K photos
1.55K videos
87 files
1.73K links
Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов.
По всем вопросам @evgenycarter

РКН clck.ru/3KoGJ3
Download Telegram
🧠 Что делает команда exec в bash — и зачем она нужна?

Многие слышали о exec, но используют редко. А зря! Это мощный инструмент, особенно в скриптах и системном администрировании.

🔹 Что делает exec?
Она заменяет текущий процесс новым, без создания дочернего. То есть, вместо запуска новой программы — текущий процесс «перевоплощается» в неё.

Простой пример:

exec top

В этом случае оболочка bash будет заменена на top, и когда вы закроете top, сессия завершится.



🛠 Где это может пригодиться:

1. В systemd-юнитах — при запуске сервиса через скрипт:

#!/bin/bash
exec /usr/bin/myapp

Это позволит системе правильно отслеживать основной процесс.

2. В контейнерах (например, Docker) — если вы запускаете скрипт в качестве ENTRYPOINT, используйте exec, чтобы сигналы (например, SIGTERM) корректно передавались вашему приложению.

3. Для перенаправления ввода/вывода:

exec >> /var/log/myscript.log 2>&1

Всё, что будет выведено в stdout и stderr после этой строки — пойдёт в лог.


exec не делает магии, но помогает делать вещи правильно. Особенно там, где важна замена PID и корректная работа сигналов.

А вы используете exec в своих скриптах? Поделитесь опытом 👇

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍8
Не все логи одинаковы полезны: 3 истории из жизни

В своей статье я расскажу, как выявить проблемы в ПО, не имеющего исходного кода и написанного не вами, а так же как минимальными средствами выяснить, что происходит у вас в системе. Данный текст подойдет администраторам, где по условиям работы всё запрещено, а так же инженерам АСУТП, где систему приходится эксплуатировать в жестких рамках ИБ.

https://habr.com/ru/articles/790554/

👉 @sysadminof
👍4
Bash Scripting в Linux (Полное руководство) Часть 1

Class 01 - Course Introduction
Class 02 - Hello World
Class 03 - Variables
Class 04 - Basic Math
Class 05 - If Statements
Class 06 - Exit Codes
Class 07 - While Loops
Class 08 - Universal Update Script
Class 09 - For Loops
Class 10 - Where to Store Scripts

источник

👉 @sysadminof
👍61
Forwarded from Bash Советы
🧯Как отключить историю Bash — навсегда и без следов

Иногда не хочется, чтобы команды сохранялись в истории (~/.bash_history). Особенно при работе с конфиденциальными данными.



🔒 Отключение истории в текущей сессии

Просто обнуляем переменные истории:


unset HISTFILE
export HISTSIZE=0
export HISTFILESIZE=0


💥 После этого Bash не будет сохранять историю вообще. Даже после выхода из сессии.



🧼 Стереть историю прямо сейчас


history -c # очистить историю из памяти
> ~/.bash_history # стереть файл истории




🔁 Отключить навсегда (для пользователя)

Добавь в ~/.bashrc или ~/.bash_profile:


export HISTFILE=
export HISTSIZE=0
export HISTFILESIZE=0


📌 После перезапуска оболочки история вестись не будет.



🧙 Дополнительно (опционально)

Чтобы Bash не пытался писать историю на выходе:


unset HISTFILE
trap "" EXIT


🛑 Будь осторожен! Без истории сложнее откатить действия. Но иногда это нужно: безопасность превыше всего 🔐

👉@bash_srv
👍4😁1
Media is too big
VIEW IN TELEGRAM
Деление IP сети на подсети при помощи маски легко и быстро. Наглядный способ!

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

источник

👉 @sysadminof
👍11🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
Живешь в мире масштабирования и аптайма? 🖱
GoCloud — конференция для IT-экспертов про облака и AI.

На GoCloud тебя ждут 30+ докладов, где расскажут и покажут:
как работают облачные сетевые сервисы
как подключать блочные хранилища к железным серверам
как запустить приложения в два клика, при этом сэкономив ресурсы
как реализована архитектура DBaaS поверх K8s

А еще будут ломать приложение в реальном времени и рассказывать про инструменты для защиты от уязвимостей.

Нетворкинг, презентации новых продуктов, live-демо и afterparty ждут тебя 10 апреля.
Регистрация по ссылке 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
🖥 Скрипт для мониторинга дискового пространства в Linux

Скрипт ниже предназначен для мониторинга использования дискового пространства на указанном разделе сервера. Настраиваемые параметры включают в себя максимально допустимый процент использования дискового пространства (MAX), адрес электронной почты для получения оповещений (EMAIL) и целевой раздел (PARTITION).

Скрипт использует команду df для сбора информации об использовании диска и отправляет предупреждения по электронной почте, если текущее использование превышает заданный порог.


#!/bin/bash

# Set the maximum allowed disk space usage percentage
MAX=90

# Set the email address to receive alerts
[email protected]

# Set the partition to monitor (change accordingly, e.g., /dev/sda1)
PARTITION=/dev/sda1

# Get the current disk usage percentage and related information
USAGE_INFO=$(df -h "$PARTITION" | awk 'NR==2 {print $5, $1, $2, $3, $4}' | tr '\n' ' ')
USAGE=$(echo "$USAGE_INFO" | awk '{print int($1)}') # Remove the percentage sign

if [ "$USAGE" -gt "$MAX" ]; then
# Send an email alert with detailed disk usage information
echo -e "Warning: Disk space usage on $PARTITION is $USAGE%.\n\nDisk Usage Information:\n$USAGE_INFO" | \
mail -s "Disk Space Alert on $HOSTNAME" "$EMAIL"
fi


👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
👋 Привет, админы!

Если вдруг замечаете странную активность по RDP — сессии отваливаются, логов много, сервер грузится — самое время проверить, кто брутфорсит.

Вот быстрый способ вытащить неудачные попытки входа по RDP через события:


Get-WinEvent -FilterHashtable @{
LogName = 'Security'
Id = 4625
} | Where-Object {
$_.Properties[10].Value -eq '10' # Logon Type 10 = RDP
} | Select-Object TimeCreated,
@{Name='Username';Expression={$_.Properties[5].Value}},
@{Name='IP';Expression={$_.Properties[18].Value}} |
Sort-Object TimeCreated -Descending | Select-Object -First 20


📌 Покажет:
- когда была попытка
- откуда (IP)
- под каким логином пытались зайти

👮‍♂️ Можно быстро зафайрволить источник, добавить в blacklist или передать в SIEM.

🛡️ Плюс к этому — рекомендую включить защиту учётных записей от перебора пароля:


net accounts /lockoutthreshold:5 /lockoutduration:15 /lockoutwindow:15


💬 А как вы отслеживаете попытки взлома по RDP? Вручную, через сторонние средства, или всё уже централизовано?

👉 @win_sysadmin
👍13🔥5👏1
Курс · Администрирование Linux

1. Основы
2. Пользовательское окруж
3. Linux и сеть (основы)
4. Управление пользовательским окружением
5. Веб-сервисы
6. Хранение данных
7. Сервисы инфраструктуры
8. LINUX. Резервное копирование
9. LINUX. Резервное копирование (часть 2)
10. LINUX. Инфраструктура электронной почты

источник

👉 @sysadminof
👍6🔥21