Последние посты

Bash Советы
8 сент., 06:37
🚀 Мониторим активные подключения к серверу по SSHИногда нужно быстро узнать, кто сейчас подключён к серверу по SSH. Вот простой однострочный скрипт:who | grep 'pts' | awk '{print $1, $2, $5}'Что делает этот скрипт?who — выводит список всех вошедших пользователей. grep 'pts' — фильтрует только те строки, что связаны с терминалами SSH. awk '{print $1, $2, $5}' — красиво выводит имя пользователя, терминал и IP-адрес.📋 Пример вывода:admin pts/0 (192.168.1.55) root pts/1 (10.0.0.23)Теперь ты всегда в курсе, кто подключён к твоему серверу! 😉📲 Мы в MAX


Bash Советы
7 сент., 18:24
🚀 Полезный Bash-скрипт для архивации старых логов 🚀Иногда логи на сервере растут быстрее, чем хочется, и начинают занимать всё свободное место. Предлагаю простой скрипт, который:1. Находит файлы с расширением .log, изменённые более чем N дней назад. 2. Архивирует их в тарболл с датой. 3. Удаляет оригиналы после успешного архива.#!/usr/bin/env bash # # Архивация старых логов >7 дней # Сохраняет в /var/backups/logs/YYYY-MM-DD_logs.tar.gz# Настройки LOG_DIR="/var/log" # Каталог с логами BACKUP_DIR="/var/backups/logs" # Куда складывать архивы DAYS_OLD=7 # Возраст файлов в днях# Создаём папку для бэкапов, если нет mkdir -p "$BACKUP_DIR"


Bash Советы
1 сент., 07:34
✨ Извлечение уникальных IP-адресов из логов Apache ✨Иногда нужно быстро получить список всех клиентов, обращавшихся к вашему веб-серверу. Мини-скрипт на Bash с регулярным выражением поможет вытащить и сохранить все уникальные IP-адреса:#!/usr/bin/env bash# 📁 Файл логов Apache LOG_FILE="/var/log/apache2/access.log"# 📄 Файл для сохранения уникальных IP OUT_FILE="/var/log/unique_ips_$(date +%F).txt"# 🛠️ Извлекаем все IPv4, сортируем и убираем дубликаты grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' "$LOG_FILE" \ | sort \ | uniq > "$OUT_FILE"echo "✅ Список уникальных IP-адресов сохранён в $OUT_FILE"Как это работает


Bash Советы
28 авг., 06:35
🗑️ Bash-совет дня: safe_rm - «корзина» для удаляемых файловСколько раз вы случайно удаляли важный конфиг? Давайте сделаем rm более дружелюбным — вместо мгновенного уничтожения файлы будут складываться в «корзину» и автоматически очищаться спустя 30 дней.#!/usr/bin/env bash # safe_rm — перемещает удаляемые файлы в локальную «корзину»TRASH_DIR="$HOME/.local/share/Trash/files" # куда складываем mkdir -p "$TRASH_DIR"stamp=$(date +%Y-%m-%d_%H-%M-%S)for item in "$@"; do if [[ ! -e $item ]]; then printf '⚠️ %s: no such file or directory\n' "$item" >&2 continue fi mv -- "$item" "$TRASH_DIR/$(basename "$item")_$stamp" done


Bash Советы
26 авг., 05:21
⚙️ Bash: Мониторинг пользователей в системе в реальном времениИногда нужно понять, кто из пользователей сейчас в системе и что они делают. Встречай удобную команду на базе watch и w:watch -n 2 w📌 Что делает эта команда:watch -n 2 — каждые 2 секунды выполняет указанную команду w — показывает, кто залогинен, откуда, сколько времени в системе и что выполняет👀 Отлично подходит для ситуаций:Отладка скриптов, когда нужно смотреть, кто подключается Мониторинг активности сотрудников или админов Выявление подозрительных сессий SSH💡 А если хочешь видеть только логины, без подробностей:watch -n 2 who


Bash Советы
24 авг., 08:05
Проверка открытых портов без использования netstatУтилита netstat считается устаревшей (deprecated). В современных дистрибутивах Linux стандартом для диагностики сокетов является ss (socket statistics). Она работает быстрее и потребляет меньше ресурсов ядра.Команда:ss -tulpnКлючи:-t: TCP сокеты. -u: UDP сокеты. -l: Только слушающие (listening) сокеты. -p: Показать процесс, использующий сокет (требует sudo). -n: Не преобразовывать IP и порты в имена (выводит числа), что значительно ускоряет работу.#network #ss #security📲 Мы в MAX
Bash Советы
23 авг., 11:05
🚀 Подборка полезных IT каналов в MaxСистемное администрирование, DevOps 📌https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash Советы https://max.ru/sysadminof Книги для админов, полезные материалы https://max.ru/i_odmin_book Библиотека Системного Администратора https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др. https://max.ru/tipsysdmin Типичный Сисадмин https://max.ru/channel_win_sysadmin Системный Администратор Windows https://max.ru/channel_linux_admin Linux: Системный администратор https://max.ru/channel_linuxmod Linux https://max.ru/channel_i_linux Системный администратор https://max.ru/channel_devopslib DevOps, SRE, Sysadmin https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)Excel лайфхак 📌 https://t.me/Excel_lifehack Excel лайфхакMAXСистемный Администратор | Sysadmin Windows & Linux Server. …Купить рекламу: https://telega.in/m/i_odmin Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
Bash Советы
21 авг., 08:05
Быстрая очистка содержимого файла без его удаленияЧастая задача при администрировании это обнулить логи или конфигурационные файлы, сохранив права доступа и дескрипторы, если файл занят процессом.Команда:> filename.logИли альтернативный вариант:true > filename.logТехническое пояснение: Оператор > перенаправляет stdout в файл. Так как левая часть команды отсутствует (или равна true), в файл записывается пустая строка, что приводит к усечению файла до нулевого размера (truncate). Это безопаснее, чем удаление и создание файла заново, так как не меняется inode.📲 Мы в MAX👉@bash_srv
Bash Советы
18 авг., 11:31
Использование «Strict Mode» в Bash-скриптахПо умолчанию Bash не останавливает выполнение скрипта при возникновении ошибок, что может привести к непредсказуемым последствиям в цепочках команд. Для повышения надежности скриптов рекомендуется начинать их со следующей конструкции.Код:#!/bin/bash set -euo pipefailРазбор параметров:- set -e: Останавливает скрипт, если любая команда завершилась с ошибкой (код возврата не 0). - set -u: Считает обращение к несуществующей переменной ошибкой и останавливает скрипт. - set -o pipefail: Возвращает код ошибки, если хотя бы одна команда в конвейере (pipe) завершилась неудачно (по умолчанию Bash берет код возврата только последней команды).📲 Мы в MAX👉@bash_srv


Bash Советы
12 авг., 07:28
🔁 Как перезапускать сервис только если он завис?Иногда не хочется перезапускать сервис "на всякий случай", но вот если он реально завис — другое дело. Вот простой способ проверять, активен ли сервис, и перезапускать его при зависании:#!/bin/bashSERVICE="nginx"if ! systemctl is-active --quiet "$SERVICE"; then echo "$(date): $SERVICE не активен, пробую перезапустить..." >> /var/log/service_monitor.log systemctl restart "$SERVICE" else echo "$(date): $SERVICE работает нормально" >> /var/log/service_monitor.log fi🛠 Можно добавить в крон, например, проверку каждые 5 минут:/5 /usr/local/bin/check_nginx.sh📁 Не забудь сделать скрипт исполняемым:


Bash Советы
10 авг., 06:54
🔥 Bash-фишка дня: замена строк в файле без sed и awkИногда хочется быстро заменить строку в файле без сложных конструкций. Вот способ сделать это с чистым Bash и while read:🛠 Скрипт: заменить слово в файле#!/bin/bashINPUT="config.txt" OUTPUT="config_new.txt" SEARCH="localhost" REPLACE="127.0.0.1"while IFS= read -r line; do echo "${line//$SEARCH/$REPLACE}" done < "$INPUT" > "$OUTPUT"📌 Что тут происходит:- IFS= read -r line — читаем файл построчно, без обрезки пробелов.


Bash Советы
8 авг., 12:00
🚀 Подборка полезных IT каналов в MaxСистемное администрирование, DevOps 📌https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash Советы https://max.ru/sysadminof Книги для админов, полезные материалы https://max.ru/i_odmin_book Библиотека Системного Администратора https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др. https://max.ru/tipsysdmin Типичный Сисадмин https://max.ru/channel_win_sysadmin Системный Администратор Windows https://max.ru/channel_linux_admin Linux: Системный администратор https://max.ru/channel_linuxmod Linux https://max.ru/channel_i_linux Системный администратор https://max.ru/channel_devopslib DevOps, SRE, Sysadmin https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)Excel лайфхак 📌 https://t.me/Excel_lifehack Excel лайфхакMAXСистемный Администратор | Sysadmin Windows & Linux Server. …Купить рекламу: https://telega.in/m/i_odmin Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
Bash Советы
5 авг., 15:41
🕵️ Ищем процессы, которые используют удалённые (удалённые, но не освобождённые) файлыБывает, что ты удаляешь лог или большой файл, а место на диске не освобождается? Это потому, что файл всё ещё открыт каким-то процессом! Вот скрипт, который найдёт таких «виновников»:#!/bin/bashecho "🔍 Ищем процессы, держащие открытые удалённые файлы..." lsof | grep '(deleted)' | awk '{print $2}' | sort -u | while read -r pid; do echo "PID: $pid | Команда: $(ps -p $pid -o comm=)" done📌 Как использовать:chmod +x find_deleted.sh ./find_deleted.sh💡 Подсказка: иногда помогает systemctl restart соответствующего сервиса, чтобы освободить место.📲 Мы в MAX


Bash Советы
3 авг., 06:38
🧠 Bash совет дня - Отслеживаем подозрительные sudo-команды в реальном времени 🕵️Хочешь знать, кто и что запускает через sudo прямо сейчас? Настроим простой мониторинг:#!/bin/bashlogfile="/var/log/auth.log"tail -F "$logfile" | grep --line-buffered "sudo" | while read line; do echo "[ALERT] 🔐 $(date): $line" done📌 Что делает:- Следит за /var/log/auth.log в реальном времени. - Отфильтровывает строки, связанные с sudo. - Выводит каждое срабатывание с пометкой времени.🔥 Пример вывода:


Bash Советы
30 июл., 21:00
$ sudo apt install holidayReading package lists... Done Building dependency tree... DoneУстанавливается пакет: "День системного администратора"✔ Серверы работают ✔ Мониторинг молчит ✔ Бэкапы актуальны ✔ Кофе горячий ✔ Пользователи не паникуютCongratulations! Happy SysAdmin Day! 🎉
Bash Советы
29 июл., 06:15
🚀 Bash-совет дня: Быстрое сканирование открытых портов с помощью bash и /dev/tcpЗачем ставить nmap, если можно быстро просканировать порты встроенными средствами bash? Вот простой однострочный скрипт:for port in {20..1024}; do (echo > /dev/tcp/127.0.0.1/$port) >/dev/null 2>&1 && echo "Порт $port открыт" done📌 Что делает скрипт:Использует встроенную возможность Bash подключаться к TCP-портам через псевдофайлы /dev/tcp/host/port. Проверяет диапазон портов от 20 до 1024 на локальной машине. Если порт доступен — выводит сообщение, что он открыт.🔒 Можно заменить 127.0.0.1 на любой IP-адрес сервера в сети. 💡 Отличный способ быстро проверить, что открыто, когда нет доступа к полноценным утилитам.📲 Мы в MAX👉@bash_srv


Bash Советы
25 июл., 11:09
🚀 Подборка полезных IT каналов в MaxСистемное администрирование, DevOps 📌https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash Советы https://max.ru/sysadminof Книги для админов, полезные материалы https://max.ru/i_odmin_book Библиотека Системного Администратора https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др. https://max.ru/tipsysdmin Типичный Сисадмин https://max.ru/channel_win_sysadmin Системный Администратор Windows https://max.ru/channel_linux_admin Linux: Системный администратор https://max.ru/channel_linuxmod Linux https://max.ru/channel_i_linux Системный администратор https://max.ru/channel_devopslib DevOps, SRE, Sysadmin https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)Excel лайфхак 📌 https://t.me/Excel_lifehack Excel лайфхакMAXСистемный Администратор | Sysadmin Windows & Linux Server. …Купить рекламу: https://telega.in/m/i_odmin Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
Bash Советы
24 июл., 06:03
🧠 Bash-совет дня: Проверка скорости интернет-соединения прямо из терминалаЕсли тебе нужно быстро проверить скорость интернета на сервере (например, VPS), не устанавливая громоздкие GUI-программы — вот решение:#!/bin/bash# Проверяем наличие speedtest-cli if ! command -v speedtest &> /dev/null; then echo "⏳ Устанавливаем speedtest-cli..." apt update && apt install -y speedtest-cli # Для Debian/Ubuntu # yum install -y speedtest-cli # Для RHEL/CentOS fi# Запускаем тест скорости echo "🚀 Проверяем скорость интернет-соединения..." speedtest📝 Альтернатива без установки — через curl:curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -


Bash Советы
21 июл., 08:17
🎯 Проверка доступности списка хостов с цветным 🎨 выводомИногда нужно быстро проверить, какие сервера "живые", а какие — нет. Ниже написал удобный Bash-скрипт с цветным выводом в терминале 🖥️.#!/bin/bash# Список хостов hosts=("192.168.0.1" "google.com" "yandex.ru" "192.168.0.100")# Цвета GREEN="\e[32m" RED="\e[31m" NC="\e[0m" # No Colorfor host in "${hosts[@]}"; do if ping -c 1 -W 1 "$host" &> /dev/null; then echo -e "${GREEN}[UP] $host${NC}" else echo -e "${RED}[DOWN] $host${NC}" fi


Bash Советы
20 июл., 08:06
🧠 Bash: Проверка доступности нескольких хостов одним скриптом Следишь за парком серверов? Этот скрипт покажет, какие машины "живы", а какие — нет 🖥️❌#!/bin/bash# Список IP или хостнеймов HOSTS=("192.168.0.1" "google.com" "server.local")for HOST in "${HOSTS[@]}"; do if ping -c 1 -W 1 "$HOST" &> /dev/null; then echo "[✅] $HOST доступен" else echo "[❌] $HOST недоступен" fi done📌 Что делает:ping -c 1 -W 1 — один пинг с таймаутом в 1 секунду Выводит результат по каждому хосту

